做个复习。

十六进制数 [0~10 A~F]

0x7f对应的二进制数及十进制数为:0111 1111

= 1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0 = 127

0x3f对应的二进制数及十进制数为:0011 1111

= 1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0 = 63

0x7f与常量做与运算实质是保留常量(转换为二进制形式)的后7位数,既取值区间为[0,127]

比如,0x7f & 256

0111 1111 -------- 127

& 1111 1111 -------- 256

-----------------------

0111 1111 --------- 127

再比如,0x7f & 10

0111 1111 -------- 127

& 0000 1010 -------- 10

-----------------------

0000 1010 --------- 10

同理,0x3f与常量做与运算实质是保留常量(转换为二进制形式)的后6位数,既取值区间为[0,63]