如何將十進位制轉換為十六進位制?


十進位制系統是大眾最熟悉的數制。它是基數為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 = 3312 = C
33 / 16 = 21
2 / 16 = 02
0 / 16 = 00

現在,從下往上(反向)寫下餘數,這將是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.06251
0.0625 x 16 =1.01
0 x 16=0.00

現在,寫下這些結果整數部分,這將近似為0.110,它是十進位制小數0.06640625的等效十六進位制小數。

用除法轉換

這種方法是猜測十進位制數的十六進位制數。您需要繪製16的冪的表格,對於整數部分,演算法如下所示。

  • 從任何十進位制數開始。

  • 列出16的冪。

  • 將十進位制數除以16的最大冪。

  • 找到餘數。

  • 將餘數除以16的下一個冪。

  • 重複此過程,直到找到完整的答案。

示例——將十進位制數380轉換為十六進位制數。

根據上述演算法,16的冪的表格為:

十進位制163=4096162=256161=16160=1
十六進位制數字017C
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 this

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

更新於:2023年10月31日

63K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.