八進位制與十六進位制的演算法
阿新 • • 發佈:2019-01-25
除了二進位制,程式設計中也經常使用八進位制和十六進位制。
八進位制有0~7共8個數字,基數為8,逢八進一,借一當八;十六進位制中,用A來表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有0~F共16個數字,基數為16,逢16進1,借1當16。例如:
在C語言中,八進位制通常以“0”開頭(注意是數字 0,而不是字母 o),例如 0307;十六進位制通常以“0x”或“0X”開頭(不區分大小寫),例如 0xE27 或 0X89F。
下面請看八進位制和十六進位制加法運算的兩個例子。
1) 八進位制加法:0107 + 0274 = 0403
圖1:八進位制加法運算
2) 十六進位制加法:0XA2B + 0X276 = 0XCA1
圖2:十六進位制加法運算
八進位制有0~7共8個數字,基數為8,逢八進一,借一當八;十六進位制中,用A來表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有0~F共16個數字,基數為16,逢16進1,借1當16。例如:
- 八進位制 3072 = 3×83 + 0×82 + 7×81 + 2×80 = 1536 + 0 + 56 + 2 = 1594
- 十六進位制 E3F9 = 14×163 + 3×162 + 15×161 + 9×160 = 57344 + 768 + 240 + 9 = 58361
十進位制 | 二進位制 | 八進位制 | 十六進位制 | 十進位制 | 二進位制 | 八進位制 | 十六進位制 |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 10 | 1010 | 12 | A |
1 | 1 | 1 | 1 | 11 | 1011 | 13 | B |
2 | 10 | 2 | 2 | 12 | 1100 | 14 | C |
3 | 11 | 3 | 3 | 13 | 1101 | 15 | D |
4 | 100 | 4 | 4 | 14 | 1110 | 16 | E |
5 | 101 | 5 | 5 | 15 | 1111 | 17 | F |
6 | 110 | 6 | 6 | 16 | 10000 | 20 | 10 |
7 | 111 | 7 | 7 | 17 | 10001 | 21 | 11 |
8 | 1000 | 10 | 8 | 18 | 10010 | 22 | 12 |
9 | 1001 | 11 | 9 | 19 | 10011 | 23 | 13 |
在C語言中,八進位制通常以“0”開頭(注意是數字 0,而不是字母 o),例如 0307;十六進位制通常以“0x”或“0X”開頭(不區分大小寫),例如 0xE27 或 0X89F。
下面請看八進位制和十六進位制加法運算的兩個例子。
這是選學內容,如果你只想瞭解八進位制和十六進位制,不希望深入研究它們的運算,請忽略這部分內容,不會影響後邊的學習。
圖1:八進位制加法運算
2) 十六進位制加法:0XA2B + 0X276 = 0XCA1
圖2:十六進位制加法運算