如何将十进制转换为十六进制?


十进制系统是大众最熟悉的数制。它是基数为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+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告