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

为什么低端字节要8143>>0*8 & 0xff呢?这个表达式是固定的还是?


不懂为什么转换为小端模式时的字节的时候要>>0*8 & 0xff呢?

正在回答

2 回答

前面有一章是“按位与运算”,讲到&的一个特殊用法是用来取指定位数(假设8143为X,想要取X对应的某个位段,相应位段的值全部为1,其余位为0,即可得到指定位)

0*8就是没有移,然后做按位与运算(&0xff),得到第一个低端位

[解释下0x开头代表十六进制,F二进制代表1111,则0xff代表1111 1111]

1*8就是像右移8位,那么舍弃掉右边的8位,就得到第二个低端位

2*8就是像右移16位,那么舍弃掉右边的16位,就得到第三个低端位

3*8就是像右移24位,那么舍弃掉右边的24位,就得到第四个低端位

总之,>>0*8 & 0xff这种方式只是用来告诉电脑的一种计算方式,而你自己知道其实取的就是原来每个端位的值来进行的计算就可以了。别想太复杂~

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

不是固定的,只是为了和其他的保持一致,方便你理解

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

举报

0/150
提交
取消
二进制基础
  • 参与学习       99899    人
  • 解答问题       210    个

二进制是计算机唯一能识别的语言,是学习计算机技术必备的知识

进入课程

为什么低端字节要8143>>0*8 & 0xff呢?这个表达式是固定的还是?

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