f在16进制中表示15,用二进制表示即为1111,0xff即为11111111
id>>0*8就是不变动,再和0xff按位与,就是取得后8位
id>>1*8就是右移8位,再和0xff按位与,实际就是取得9~16位的数字
其余的以此类推,仔细想想其实不难,但是没做解释一时间还是反应不过来其中的含义
id>>0*8就是不变动,再和0xff按位与,就是取得后8位
id>>1*8就是右移8位,再和0xff按位与,实际就是取得9~16位的数字
其余的以此类推,仔细想想其实不难,但是没做解释一时间还是反应不过来其中的含义
2017-03-03
这样在将数组arr[]中的字节数值转换为int型
1、arr[0]中存入的是字节 (arr[0] & 0xff) << 0*8 即 11001111
2、再强制转换为int型数值 其实计算结果就是(11001111)=206;
3、然后就是rs0+rs1+rs2+rs3=8143;
1、arr[0]中存入的是字节 (arr[0] & 0xff) << 0*8 即 11001111
2、再强制转换为int型数值 其实计算结果就是(11001111)=206;
3、然后就是rs0+rs1+rs2+rs3=8143;
2017-02-26
在int型转换为字节中
1、定义的int型数id的字节型数值按四字节算(每个字节有8位)
2、用和0xff相与的方法得到后八位(低字节) 即(id>>0*8) & 0xff 此时得到的是11001111 在将它转换成相应的10进制数-49 再将这个10进制数强制转换(byte)为字节数存到arr[]数组中 即arr[0] = (byte) ((int)(id >> 0*8) & 0xff)
1、定义的int型数id的字节型数值按四字节算(每个字节有8位)
2、用和0xff相与的方法得到后八位(低字节) 即(id>>0*8) & 0xff 此时得到的是11001111 在将它转换成相应的10进制数-49 再将这个10进制数强制转换(byte)为字节数存到arr[]数组中 即arr[0] = (byte) ((int)(id >> 0*8) & 0xff)
2017-02-26