为什么低端字节要8143>>0*8 & 0xff呢?这个表达式是固定的还是?
不懂为什么转换为小端模式时的字节的时候要>>0*8 & 0xff呢?
不懂为什么转换为小端模式时的字节的时候要>>0*8 & 0xff呢?
2016-05-29
前面有一章是“按位与运算”,讲到&的一个特殊用法是用来取指定位数(假设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这种方式只是用来告诉电脑的一种计算方式,而你自己知道其实取的就是原来每个端位的值来进行的计算就可以了。别想太复杂~
举报