问答详情
源自:3-1 RandomAccessFile基本操作

请问为什么把byte字节数组的元素b转化为16进制 需要&0xff

字节数组中的元素不是已经分开了吗,为什么还要分别取后8位? 


提问者:帅弟弟 2016-01-11 16:51

个回答

  • Its_forever
    2016-01-11 17:03:09

    在32位的电脑中数字都是以32格式存放的,如果是一个byte(8位)类型的数字,他的高24位里面都是随机数字,低8位才是实际的数据。java.lang.Integer.toHexString() 方法的参数是int(32位)类型,如果输入一个byte(8位)类型的数字,这个方法会把这个数字的高24为也看作有效位,这就必然导致错误,使用& 0XFF操作,可以把高24位置0以避免这样错误的发生。