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,必须要&0xff

posted @ 2011-10-17 11:01  yuan_gou  阅读(354)  评论(0)    收藏  举报