天天看點

16進制轉10進制 & 位移小記

[size=medium]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 [/size]