Integer.toHexString(b & 0xff)理解以及& 0xff什么意思

今天学到一句Integer.toHexString(b & 0xff)(b是byte类型的)
马克一下什么意思
Integer.toHexString这个方法是把字节(转换成了int)以16进制的方式显示。

首先,
以下是java.lang.Integer.toHexString()方法的声明

public static String toHexString(int i)

其次,

&是什么

&是位操作符,“按位与”当&作为位运算时,1&1=1 ,1&0=0,0&0=0

举个栗子: a=1;b=2;a&b=0

计算方法为:
1转成二进制 01
2转成二进制 10
所以,a&b=00 转成十进制为0

然后,

0xff是什么

0x表示是十六进制。
ff是两个十六进制的数,每个f用二进制表示是1111,所以占四位(bit),两个f(ff)占八位(bit),八位(bit)也就是一个字节(byte).

最后,上面的这些都理解了,那么具体是怎么个流程呢?

首先toHexString传的参数应该是int类型32位,此处传的是byte类型8位,所以前面需要补24个0。然后& 0xff 就是把前面24个0去掉只要后8位。
(经过百度)int本身就是由4组byte组成,并且Java中本身就以byte读取。所以此处传参没有问题。

toHexString(b & 0xff)相当于做了一次位的与运算,将前24位字符省略,将后8位保留。即只转了后8位。即可得到两个十六进制的值。

我的理解是这样,如有不对欢迎指正!也可补充!

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值