十六进制整数
大的二進制數讀起來很麻煩,因此十六進制數字就提供了一種簡便的方式來表示二進制數據。十六進制整數中的 1 個數字就表示了 4 位二進制位,兩個十六進制數字就能表示一個字節(jié)。
?
一個十六進制數字表示的范圍是十進制數 0 到 15,所以,用字母 A 到 F 來代表十進制數 10 到 15。
?
下表列出了每個 4 位二進制序列如何轉換為十進制和十六進制數值。
?
?
| 0000 | 0 | 0 | 1000 | 8 | 8 |
| 0001 | 1 | 1 | 1001 | 9 | 9 |
| 0010 | 2 | 2 | 1010 | 10 | A |
| 0011 | 3 | 3 | 1011 | 11 | B |
| 0100 | 4 | 4 | 1100? | 12 | C |
| 0101 | 5 | 5 | 1101 | 13 | D |
| 0110 | 6 | 6 | 1110 | 14 | E |
| 0111 | 7 | 7 | 1111 | 15 | F |
下面的例子說明了二進制數 0001 0110 1010 0111 1001 0100 是如何與十六進制數 16A794 等價的。
?
| 1 | 6 | A | 7 | 9 | 4 |
| 0001 | 0110 | 1010 | 0111 | 1001 | 0100 |
無符號十六進制數到十進制的轉換
十六進制數中,每一個數字位都代表了 16 的冪。這有助于計算一個十六進制整數的十進制值。假設用下標來對一個包含 4 個數字的十六進制數編號 D3D2D1D0。
下式計算了這個 整數的十進制值:
dec = (D3?X 163) + (D2?X 162) + (D1?X 161) + (D0?x 160)
這個表達式可以推廣到任意n位數的十六進制整數:
dec = (Dn-1?X 16n-1)+ (Dn-2?x 16n-2)+…+ (D1?X 161)+ (D0?x 160)
一般情況下,可以通過公式把基數為B的任何n位整數轉換為十進制數:
dec = (D?n-1?X Bn-1) + (Dn-2?X Bn-2) +…+ (D1?X B1) + (D0?x B0)。
比如,十六進制數1234就等于(1 x 163) + (2 x 162) +(3X161) + (4×160),也就是十進制數 4660。同樣,十六進制數 3BA4 等于(3 x 163)+(11 x 162)+(10 x 161)+( 4 ?x ?160),也就是十進制數15 268。
?
下圖演示了第二個數轉換的計算過程:
?
?
?
下表列出了 16 的冪從160?到167?的十進制數值。
| 160 | 1 | 164 | 65 536 |
| 161 | 16 | 165 | 1 048 576 |
| 162 | 256 | 166 | 16 777 216 |
| 163 | 4096 | 167 | 268 435 456 |
無符號十進制數到十六進制的轉換
無符號十進制整數轉換到十六進制數的過程是,把這個十進制數反復除以16,每次取余數作為一個十六進制數字。例如,下表列出了十進制數 422 轉換為十六進制的步驟:
| 422/16 | 26 | 6 |
| 26/16 | 1 | A |
| 1/16 | 0 | 1 |
表中,余數列的數字按照最后一行到第一行的順序,組合為十六進制的結果。因此本例中,十六進制結果就表示為1A6。同樣的算法也適用于《二進制整數》一節(jié)中的二進制整數。如果要將十進制數轉換為其他進制數,就在計算時把除數(16)換成相應的基數。
匯編語言基本概念簡介
1.1 匯編語言是什么
1.2 匯編語言的應用
1.3 虛擬機是什么
1.4 匯編語言的數據表示
1.5 二進制整數
1.6 二進制加法運算
1.7 字節(jié)(byte)
1.8 十六進制整數
1.9 補碼及進制轉換
1.10 二進制減法運算
總結
- 上一篇: jqgrid 列表条件查询的几步关键操作
- 下一篇: 架构师之DNS实战