java int转byte数组

在Java中,可以使用以下代码将int类型的数值转换成byte数组:

int num = 123;  // 要转换的int类型数值
byte[] bytes = new byte[4];  // 创建一个长度为4的byte数组,int类型占用4个字节
bytes[0] = (byte) (num >> 24);  // 取最高8位放到0下标
bytes[1] = (byte) (num >> 16);  // 取次高8位放到1下标
bytes[2] = (byte) (num >> 8);   // 取次低8位放到2下标
bytes[3] = (byte) (num);        // 取最低8位放到3下标

代码中,将int类型的数值通过位移运算符(>>)依次取出每个字节的值,并存储到byte数组中,其中强制类型转换是必需的,因为位移运算符的返回值类型是int,而byte数组的元素类型是byte。

如果想将byte数组转换成int类型的数值,可以使用以下代码:

byte[] bytes = new byte[]{0, 0, 0, 123};  // 要转换的byte数组,长度为4
int num = ((bytes[0] & 0xFF) << 24) | ((bytes[1] & 0xFF) << 16) | ((bytes[2] & 0xFF) << 8) | (bytes[3] & 0xFF);

代码中,通过位移运算符(<<)将每个字节的值还原到int类型的数值中,并使用按位与运算符(&)将byte类型的元素转换成int类型的值。需要注意的是,由于Java中的byte类型是有符号的,因此需要先将byte类型的值通过按位与运算符(&)和0xFF进行无符号转换。

  •