java十六进制取值的问题
byte[] b = new byte[1024]
b[1] = -126
实际这个值是2
其实这是个十六进制。我朋友说b[1]转成十六进制后 & 0x01111111 就能得到b[1]=2了。
但他没时间了,我也不知道怎么写...求大神哇。
补充 b[1] = -127 //实际是1
b[1] = -125 //实际是3
------解决方案---------------------126 --- 0x11111110 的补码 0x00000001 +1 = 0x00000010
0x00000010 & 0x01111111 = 0x00000010 = 等于十进制的 2了
------解决方案---------------------127 --- 0x11111111 的补码 0x00000000 +1 = 0x00000001
0x00000001 & 0x01111111 = 0x00000001 = 等于十进制的 1了
-125 --- 0x11111101 的补码 0x00000010 +1 = 0x00000011
0x00000011 & 0x01111111 = 0x00000011 = 等于十进制的 3了
------解决方案--------------------