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

正在回答

2 回答

0x 是十六进制的前缀表示, f 表示 16进制的  值 15 ,0xf 就是表示十六进制的f, 十六进制即 0123456789abcdef ,小于 f 自然只有一位,所以补0   

3 回复 有任何疑惑可以回复我~
#1

义_义

16进制的15应该是0xE好不好。。。。
2019-08-12 回复 有任何疑惑可以回复我~

0xff是指16进制的255 即二进制中的 1111 1111,而不是1。

课程里说的>>>(>>>是无符号右移,左边全部补0)和& 0xff(& 是 按位与操作,如101&001 = 001)的操作是为了取int值的各个部分的8位。

实际上只需要>>>即可,而& 一个0xff实际上得到当前最后的八位的原值(因为与了一个全是1的),同时消除了前面多余的位数。

例如:

0000,0000,0000,0011想要取高八位即(0000,0000),先进行一次>>>8(右移8位,补0)得到

0000,0000,0000,0000(斜的0是新补上去的),然后再用他和0xff,即

1111,1111进行 与 运算,那么就能得到

0000,0000(把斜的0全部去掉了)

0 回复 有任何疑惑可以回复我~
#1

Kuneng

0xff是指10进制的255
2018-08-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

0xf为什么是1

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