Java中Int转byte分析
针对声明变量 int i = 3,j = 8;
int占4个字节,i = 3 在Java二进制表示:
00000000 00000000 00000000 00000011
j = 8 在Java二进制表示:
00000000 00000000 00000000 00001000
下面进行运算:
1、按位与:每一位进行按位与运算,规则是
1&1 = 1;1&0 = 0;0&1 = 0;0&0 = 0;
所以i & j = 0
2、右位移或者左位移
i>>2 = 0
向右位移两位,右边使用0补位,变成:
00000000 00000000 00000000 00000000
i<<2 = 12
向左位移两位,左边使用0补位,变成:
00000000 00000000 00000000 00001100
所以使用Int转byte方法
public byte[] intToByte(int val){ byte[] b = new byte[4]; b[0] = (byte)(val & 0xff); b[1] = (byte)((val >> 8) & 0xff); b[2] = (byte)((val >> 16) & 0xff); b[3] = (byte)((val >> 24) & 0xff); }