在十进制转十六进制的时候,我们用到了& 0xFF,这个是为了防止byte转成int的时候,从8位变成32位,会在高位自动补齐缺少的位数,补齐的数值和byte原来的高位值一样,因为java采用的补码的计算方式,当byte为负数的时候,高位补齐的值为1,这样会和原来的值有出入导致
String temp = Integer.toHexString(bytes[i] & 0xFF);这段代码出错。
在十进制转十六进制的时候,我们用到了& 0xFF,这个是为了防止byte转成int的时候,从8位变成32位,会在高位自动补齐缺少的位数,补齐的数值和byte原来的高位值一样,因为java采用的补码的计算方式,当byte为负数的时候,高位补齐的值为1,这样会和原来的值有出入导致
String temp = Integer.toHexString(bytes[i] & 0xFF);这段代码出错。