找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 183|回复: 0

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

[复制链接]

2万

主题

162

回帖

18万

积分

管理员

积分
184954
发表于 2024-7-16 13:32:51 | 显示全部楼层 |阅读模式 IP:山东省济南市 电信

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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位。即可得到两个十六进制的值。

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

[color=rgba(0, 0, 0, 0.75)]



from:https://blog.csdn.net/qq_43842093/article/details/136110819




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|哩布大模型|Civitai大模型|IP定位|图反推|站长素材|deepseek|即梦视频|阿狗工具|花瓣网|pinterest|php手册|宝塔文档|CyberChef|猫捉鱼铃|手机版|小黑屋|下载狗|IPS|在线工具|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2025-5-9 23:24

Powered by 分享屋 X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表