byte[] b = new byte[1024]b[1] = -126实际这个值是2其实这是个十六进制。我朋友说b[1]转成十六进制后 & 0x01111111 就能得到b[1]=2了。
但他没时间了,我也不知道怎么写...求大神哇。补充 b[1] = -127 //实际是1
b[1] = -125 //实际是3

解决方案 »

  1.   

    -126  --- 0x11111110 的补码  0x00000001 +1  = 0x00000010 
    0x00000010 & 0x01111111 = 0x00000010 = 等于十进制的 2了
      

  2.   

    -127 --- 0x11111111 的补码 0x00000000 +1 = 0x00000001  
    0x00000001 & 0x01111111 = 0x00000001 = 等于十进制的 1了
    -125 --- 0x11111101 的补码 0x00000010 +1 = 0x00000011  
    0x00000011 & 0x01111111 = 0x00000011 = 等于十进制的 3了