阅读背景:

java byte 和 int 类型转换的问题

来源:互联网 

int index = bytes[i] & 0xff//字符转换成数字 

byte 转int 是由8位 转到32位的,这样就有了两种扩展方式,0扩展 和1扩展,这要取决去最高位(符号位)是0 还是1 这样的话 如果是 1扩展,那前面的24位就全是1了,这样转换过去的 int 跟原 byte是不一样的,所以 必须 要&0xff 也就是保存 最低的8位 例如:byte x=(byte)0xa0; 然后x转为int后 会变成0xffffffa0,必须要&0xffbyte




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: