如何将十六进制转换为十进制?
十六进制数是一种数值系统,其基数为 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 的一位表示。而十进制系统是公众最熟悉的数值系统。它是基数为 10 的系统,只有 10 个符号:0、1、2、3、4、5、6、7、8 和 9。
从十六进制到十进制的转换
有多种间接或直接的方法可以将十六进制数转换为十进制数。在间接方法中,您需要将十六进制数转换为二进制或八进制数,然后将其转换为十进制数。
示例 - 将十六进制数 F1 转换为十进制数。
First convert it into binary or octal number, = (F1)16 = (1111 0001)2 or (011 110 001)2 Because in binary, value of F and 1 are 1111 and 0001 respectively. Then convert it into decimal number multiplying power of its position of base. = (1x27+1x26+1x25+1x24+0x23+0x22+0x21+1x20)10 or (3 6 1)8= (1x27+1x26+1x25+1x24+0x23+0x22+0x21+1x20)10 or (3x82+6x81+1x80)10 = (241)10
但是,有一种简单直接的方法可以将十六进制数转换为十进制数。由于十六进制数系统中只有 16 位数字(从 0 到 7 和 A 到 F),因此我们可以使用以下 4 位表示十六进制数系统中的任何一位数字。
十六进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
二进制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 |
十六进制 | 8 | 9 | A=10 | B=11 | C=12 | D=13 | E=14 | F=15 |
二进制 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
十六进制数系统提供了一种方便的方法,可以将大型二进制数转换为更紧凑且更小的组。这些是十六进制在十六进制相应位置的权重(基数的值为 16)。
最高有效位 (MSB) | 十六进制点 | 最低有效位 (LSB) | |||
---|---|---|---|---|---|
162 | 161 | 160 | 16-1 | 16-2 | 16-3 |
256 | 16 | 1 | 1/16 | 1/256 | 1/4096 |
由于数字是位置数系统的一种类型。这意味着从右到左的位置的权重分别为 160、161、162、163 等。对于整数部分,以及从左到右的位置的权重分别为 16-1、16-2、16-3 等。对于小数部分。
您可以使用十进制到十六进制数的反向方法直接将十六进制数转换为十进制数。
假设任何无符号十六进制数为 hnh(n-1) ... h1h0.h-1h-2 ... h(m-1)hm。然后十进制数等于十六进制数字 (hn) 乘以它们 16 的幂 (16n) 的总和,即
= hnh(n-1) ... h1h0.h-1h-2 ... h(m-1)hm
= hnx16n+h(n-1)x16(n-1)+ ... +h1x161+h0x160+h-1x16-1+h-2x16-2+ ... +h(m-1)x16-(m-1)+h-mx16-m
这是一个简单的算法,您需要将二进制的位置值乘以其数字,并得到这些步骤的总和。
示例 1 - 将十六进制数 ABCDEF 转换为十进制数。
由于符号 A、B、C、D、E、F 的值分别为 10、11、12、13、14、15。因此,等效的十进制数为:
= (ABCDEF)16 = (10x165+11x164+12x163+13x162+14x161+15x160)10= (10485760+720896+49152+3328+224+15)10 = (11259375)10 which is answer.
示例 2 - 将十六进制数 1F.01B 转换为十进制数。
由于符号 B 和 F 的值分别为 11 和 15。因此,等效的十进制数为:
= (1F.01B)16 = (1x161+15x160 +0x16-1+1x16-2+11x16-3)10 = (31.0065918)10 which is answer.