Chuyển đổi Các Kiểu Dữ Liệu Nguyên Thủy Trong Java

Trong bài này, chúng ta sẽ tìm hiểu một số phương pháp chuyển đổi các kiểu dữ liều nguyên thủy, từ int -> byte, byte->int, từ int[] -> byte[], byte[]->int[].

1.Chuyển đổi từ mảng byte[] sang kiểu int

Cách 1

/**

* Convert the byte array to an int.

* @param b The byte array

* @return The integer

*/

public static int byteArrayToInt(byte[] b) {

return byteArrayToInt(b, 0);

}

/**

* Convert the byte array to an int starting from the given offset.

* @param b The byte array

* @param offset The array offset

* @return The integer

*/

public static int byteArrayToInt(byte[] b, int offset) {

int value = 0;

for (int i = 0; i < 4; i++) {

int shift = (4 – 1 – i) * 8;

value += (b[i + offset] & 0x000000FF) << shift;

}

return value;

}

Cách 2

private static int convertByteArrayToInt(byte[] bytes) { return (bytes[0] << 32) | (bytes[1] << 24) | (bytes[2] << 16) | (bytes[3] <<8) | bytes[4]; }

2.Chuyển đổi từ kiểu int sang mảng byte[]

Cách 1

public static byte[] intToByteArray(int value) {

byte[] b = new byte[4];

for (int i = 0; i < 4; i++) {

int offset = (b.length – 1 – i) * 8;

b[i] = (byte) ((value >>> offset) & 0xFF);

}

return b;

}

Cách 2

public static byte[] convertIntToByteArray(int integer) { byte[] bytes = new byte[4]; bytes[0] =(byte)( integer >> 24 ); bytes[1] =(byte)( (integer << 8) >> 24 ); bytes[2] =(byte)( (integer << 16) >> 24 ); bytes[3] =(byte)( (integer << 24) >> 24 ); return bytes; }

3.Chuyển đổi từ mảng int[] sang mảng byte[]

Cách 1:

private byte[] intToBytes(int[] values) {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

DataOutputStream dos = new DataOutputStream(baos);

for (int i = 0; i < values.length; ++i) {

try {

dos.writeInt(values[i]);

} catch (IOException ex) {

ex.printStackTrace();

}

}

return baos.toByteArray();

}

Cách 2:

private static byte[] convertIntArrayToByteArray(int[] integers) { byte[] bytes = new byte[integers.length*4]; for (int index = 0; index < integers.length; index++) { byte[] integerBytes = convertIntToByteArray(integers[index]); bytes[index*4] =       integerBytes[0]; bytes[1 + (index*4)] = integerBytes[1]; bytes[2 + (index*4)] = integerBytes[2]; bytes[3 + (index*4)] = integerBytes[3]; } return bytes; }

4.Chuyển đổi từ mảng byte[] sang mảng int[]

private static int[] convertByteArrayToIntArray(byte[] bytes) { ArrayList integers = new ArrayList(); for (int index = 0; index < bytes.length; index += 4) { byte[] fourBytes = new byte[4]; fourBytes[0] = bytes[index]; fourBytes[1] = bytes[index+1]; fourBytes[2] = bytes[index+2]; fourBytes[3] = bytes[index+3]; int integer = convertByteArrayToInt(fourBytes); integers.add(new Integer(integer)); } int[] ints = new int[bytes.length/4]; for (int index = 0; index < integers.size() ; index++) { ints[index] = ((Integer)integers.get(index)).intValue(); } return ints; }

Bạn thấy bài viết này thế nào?

Rate this:

Share this:

  • Facebook
  • X
Like Loading...

Related

Từ khóa » Chuyển Byte Sang Int