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

来源:3-1 RandomAccessFile基本操作

帅弟弟

2016-01-11 16:51

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


写回答 关注

1回答

  • 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以避免这样错误的发生。


文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题