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
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