16位数的高低八位
2020-06-11 本文已影响0人
我的阿福
-
大小端
高位字节在前,低位字节在后称之为大端。反之,为小端。 -
以下都是基于大端16位二进制数来说,小端反之。
-
取低八位
比如一个16位二进制数记为a,值为00110000 00110101,00110101为低八位。如果要取得a的低八位所用的操作为a&0xff。
解释:0xff的二进制为00000000 11111111,&运算中,两者都为1结果才为1。所以,00110000 00110101&00000000 11111111运算中,结果为00000000 00110101。前面八位都是0忽略,结果就是00110101。同理,可以取八位字节的低四位。 -
取高八位
还是以上面二进制数a为例。取高八位的操作方式为a>>8。
解释:>> 为右移运算,右边依次去掉移动的位数,左边添0。结果为00000000 00110000。左边都是0忽略,所以是00110000,与原来a的高八位相等。同理,可以取八位字节的高四位。