16进制转10进制 & 位移小记

16进制数字表示(0 --- F( 0 到15))
0 1 2 3 4 5 6 7 8 9 A(10) B(11) C(12) D(13) E(14) F(15)

16进制转为10进制的计算方式
计算方式: 0xMN = 16 x M + N ;

0xFF = 16 x 15 + 15 = 255;
0x60 = 16 x 6 + 0 = 96;

以此规律计算,方便容易记。。

取一个byte里面的低四位

int a = M;
int b = M & 0x0F;

b就是所要得到的低四位。

高四位  int c = (a>>4)&0x0F;


ps:

位运算应用口诀
清零取反要用与,某位置一可用或
若要取反和交换,轻轻松松用异或

& 与。 全1为1, 有0为0;  任何数与0异或都等于0。 
    例: 101&010=000,即 5&2=0. 
| 或。 有1为1, 全0为0,和 & 相反。  任何数与0或都等于原值。
    例: 101|010=111,即 5&2=7.
^ 异或。 相同为0,相异为1; 任何数与0异或都等于原值。 
    例: 101^010=111,即 5&2=7.
<<左移。 补0。
>> 右移。 符号位是0补0,是1补1。  <符号位为第1为,0表示正数,1表示负数>
>>>无符号右移。补0。
~ 非 逐位取反


“按位与”操作符“&”对两个bit串按位进行逻辑与,“按位或”操作符“|”对两个bit串按位进行逻辑或,“按位异或”操作符“^”对两个bit串按位进行异或操作。运算规则如下表所示。
按位与          按位或              按位异或
0 & 0 = 0     0 | 0 = 0        0 ^ 0 = 0
0 & 1 = 0     0 | 1 = 1        0 ^ 1 = 1
1 & 0 = 0     1 | 0 = 1        1 ^ 0 = 1
1 & 1 = 1     1 | 1 = 1        1 ^ 1 = 0

你可能感兴趣的:(C++,c,F#,C#)