如何將十進位制轉換為十六進位制?
十進位制系統是大眾最熟悉的數制。它是基數為10的系統,只有10個符號——0, 1, 2, 3, 4, 5, 6, 7, 8和9。而十六進位制系統是計算機或數字系統中最常用的顏色表示數制。它是基數為16的系統,只有16個符號:0, 1, 2, 3, 4, 5, 6, 7, 8, 9和A, B, C, D, E, F。這些A, B, C, D, E, F分別代替兩位數10, 11, 12, 13, 14, 15。
從十進位制到十六進位制數制的轉換
有多種直接或間接方法可以將十進位制數轉換為十六進位制數。在間接方法中,您需要將十進位制數轉換為其他數制(例如,二進位制或八進位制),然後可以使用二進位制數制的組合將它轉換為十六進位制數,將每個八進位制數字轉換為二進位制,然後組合並將這些轉換為十六進位制數。
示例——將十進位制數105轉換為十六進位制數。
First convert it into binary or octal number, = (100)10 = (1x26+1x25+0x24+0x23+1x22+0x21+0x20)10 or (1x82+4x81+4x80)10 Because base of binary and octal are 2 and 8 respectively. = (1100100)2 or (144)8 Then convert each digit of octal number into 3 bit of binary number, then use grouping of 4 bit of binary number. = (1100100)2 or (001 100 100)2 = (110 0100)2 = (0110 0100)2 = (6 4)16 = (64)16
但是,有兩種直接方法可用於將十進位制數轉換為十六進位制數——用餘數轉換和用除法轉換。這些方法將在下面解釋。
(a) 用餘數轉換(對於整數部分)
這是一個直接的方法,它涉及到將要轉換的數字進行除法。設十進位制數為N,然後用16除這個數字,因為十六進位制數制的基數是16。記下餘數的值,它將是:0到15(將10, 11, 12, 13, 14, 15分別替換為A, B, C, D, E, F)。再次除以剩餘的十進位制數,直到它變成0,並記下每一步的餘數。然後從下往上(或反向)寫下餘數,這將是給定十進位制數的等效十六進位制數。這是轉換整數十進位制數的過程,演算法如下所示。
將十進位制數作為被除數。
將此數除以16(16是十六進位制的基數,因此這裡是除數)。
將餘數儲存在一個數組中(它將是:0到15,因為除數是16,將10, 11, 12, 13, 14, 15分別替換為A, B, C, D, E, F)。
重複上述兩步,直到數字大於零。
反向列印陣列(這將是給定十進位制數的等效十六進位制數)。
請注意,被除數(這裡給定的十進位制數)是被除的數,除數(這裡十六進位制的基數,即16)是被除數除以的數,商(剩餘的十進位制數)是除法的結果。
示例——將十進位制數540轉換為十六進位制數。
由於給定的數字是十進位制整數,因此使用上述演算法用16進行短除法並求餘數。
| 除法 | 餘數 (R) |
|---|---|
| 540 / 16 = 33 | 12 = C |
| 33 / 16 = 2 | 1 |
| 2 / 16 = 0 | 2 |
| 0 / 16 = 0 | 0 |
現在,從下往上(反向)寫下餘數,這將是021C(或僅21C),它是十進位制整數540的等效十六進位制數。
但是上述方法不能轉換混合數(帶有整數和小數部分的數)的十六進位制數的小數部分。對於十進位制小數部分,方法如下所示。
(b) 用餘數轉換(對於小數部分)
設十進位制小數部分為M,然後用16乘以這個數字,因為十六進位制數制的基數是16。記下整數部分的值,它將是-0到15(將10, 11, 12, 13, 14, 15分別替換為A, B, C, D, E, F)。再次乘以剩餘的十進位制小數,直到它變成0,並記下每一步結果的整數部分。然後寫下記下的整數部分的結果,這將是給定十進位制數的等效小數十六進位制數。這是轉換小數十進位制數的過程,演算法如下所示。
將十進位制數作為被乘數。
將此數乘以16(16是十六進位制的基數,因此這裡是乘數)。
將結果的整數部分的值儲存在一個數組中(它將是:0到15,因為乘數是16,將10, 11, 12, 13, 14, 15分別替換為A, B, C, D, E, F)。
重複上述兩步,直到數字變成零。
列印陣列(這將是給定十進位制小數的等效小數十六進位制數)。
請注意,被乘數(這裡的十進位制小數)是被乘數(這裡的十六進位制基數,即16)乘以的數。
示例——將十進位制小數0.06640625轉換為十六進位制數。
由於給定的數字是十進位制小數,因此使用上述演算法用16進行短乘法並求整數部分。
| 乘法 | 結果整數部分 |
|---|---|
| 0.06640625 x 16=1.0625 | 1 |
| 0.0625 x 16 =1.0 | 1 |
| 0 x 16=0.0 | 0 |
現在,寫下這些結果整數部分,這將近似為0.110,它是十進位制小數0.06640625的等效十六進位制小數。
用除法轉換
這種方法是猜測十進位制數的十六進位制數。您需要繪製16的冪的表格,對於整數部分,演算法如下所示。
從任何十進位制數開始。
列出16的冪。
將十進位制數除以16的最大冪。
找到餘數。
將餘數除以16的下一個冪。
重複此過程,直到找到完整的答案。
示例——將十進位制數380轉換為十六進位制數。
根據上述演算法,16的冪的表格為:
| 十進位制 | 163=4096 | 162=256 | 161=16 | 160=1 |
| 十六進位制數字 | 0 | 1 | 7 | C |
Divide the decimal number by the largest power of 16. = 380 / 256 = 1.484375 So 1 will be first digit or most significant bit (MSB) of hexadecimal number. Now, remainder will be, = 380 - 1256 =124 Now, divide thisremainder by the next power of 16. = 124 / 16 = 7.75 So 7 will be next digit or second most significant bit (MSB) of hexadecimal number. Now, remainder will be, = 124 - 716 = 12 Because remainder 12(= C) is less than base 16, so C(=12) will be ast (least significant) bit of required hexadecimal number. Therefore, 17C will be equivalent hexadecimal number of given decimal number 380.
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP