为了账号安全,请及时绑定邮箱和手机立即绑定

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

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


正在回答

1 回答

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


2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信