介绍
在前一节中,我们学习了十进制和二进制数字系统。一般在数字系统中,对长字符串的表示和操作是非常常见的。我们无法在二进制数系统中有效地表示一个具有更多二进制位数(长字符串)的数字。因此,为了方便地表示长字符串,我们使用另一种称为“十六进制数字系统”的数字系统。十六进制数字系统在汇编语言编码中被广泛使用。
十六进制数字系统
在术语Hexa十进制数制中,“Hexa”这个词的意思是16。因此,顾名思义,十六进制数字系统将有16个值来表示数字,即从0到9的数字和从A到F的字母。
六十进制数字
十六进制小数如下表所示。这里的16值表示从0到15的数字。0到9的数字用通常的方式表示,而10到15的数字用字母A到f表示。16个数字用不同的组合来表示二进制和十进制数字。
在F之后,数字还是从(10)16开始,这等于16的十进制,即(1× (16)) + (0 ×(16))
注意,每个十六进制小数代表一组四个数字,称为“Nibble”。在十六进制数制中,数字的位置被加权为16的幂。这意味着在一列中,一个数字的值是其右侧数字的16倍。
例:(10)16,(56)16,(3Fb1)16, (A51D0)16
让我们看更多的例子来清楚地理解这一点
这种十六进制用于计算机寄存器中存储数据的地址。如果我们必须给出大量的二进制字符串,例如1011110110001011111010110001101,这是非常困难的,并且会造成很多混乱。因此,计算机使用十六进制数字来表示这样的字符串。
十六进制十进制数的转换
正如我们将二进制数转换为十进制数,将十进制数转换为二进制数一样,我们也可以将十六进制十进制数转换为二进制和十进制数系统。
从二进制到十六进制的转换
为了将二进制数转换为十六进制十进制数,我们将二进制数分组为一组4位。如果有必要,加0来完成这个集合。接下来,把对应的数字写在四位数的每一组上。
例1:将(0110101110001100)2转换为十六进制小数。
给定0110101110001100,将二进制数字分组为一组4位数字。
0110 1011 1000 1100
6 b 8 c
所以(0110101110001100)2 = (6B8C)16
从十六进制到二进制的转换
要将十六进制数字转换为二进制数,我们遵循上面解释的相反步骤。首先,我们将十六进制数的每一位都写成二进制形式,然后对二进制数进行分组。
看看下面给出的一些例子,你就会对这个问题有一个清晰的认识
例1:将5A9转换成二进制
5个9
0101 1010 1001
因此(5A9)16 = (10110101001)2
从十六进制到十进制的转换
要将一个十六进制十进制数转换为十进制数,我们应该将每个数字/字母写成以10为基数的十进制数的形式,然后将十六进制十进制数ha写成16的幂和。
参见已解释的例子,
例1:将十六进制十进制数1A9B转换为十进制。
1 A 9 B = 1 x 163 + A x 162 + 9 x 161 + B x 160(书写能力16)
= 4096 + a (256) + 9 (16) + b (1)
= 4096 + 10 (256) + 144 + 11
= 6811
因此,(1A9B)16 = (6811)10
十进制到十六进制十进制的转换
将十进制转换为十六进制的简单方法与将十进制转换为二进制相同。重复除法过程是用2来完成的,但由于十六进制十进制数是16的基数,我们应该用16来完成重复除法过程,而不是用2。提醒是按从最后到第一个的顺序标注的。
让我们用一个例子来学习这个:偶数
746 ÷ 16商10,余数46结果> A
46 ÷ 16商14,余数2结果> E A
2 ÷ 16商0,余数2 Result > 2 E A
所以(746)10 = (2EA)16
另一个例子:奇数
3509 ÷ 16商219,余数5结果> 5
219 ÷ 16商13,余数11结果> B 5 .
13÷ 16商0,余数13结果> D B 5
那么(3509)10 = (DB5)16
HexaDemical数字表示
我们已经学习了如何将十六进制转换成其他的数字系统,又将其他的数字系统转换成十六进制。现在我们来讨论一下十六进制数的计数。
如果我们必须计算十六进制数字多于F,我们将从二进制数字重新开始计数。如下图所示。
注意:
在十六进制中,重要且必须记住的是,如果我们在这里写(10)16,这表示的不是10。这是1×(16) + 0×(16)的十六进制。同样,如果我们把19或32写成十六进制小数,它们也不像19或32。它们是十进制中的1× (16) + 9×(16)和3×(16)+ 2×(16)。简单地说,
(10)10不等于(10)16
(19)10不等于(19)16
(32)10不等于(32)16
十进制数制中最高正小数为255;在十六进制中,用十六进制组成的最高数字是FF。这在十进制数制中等于255,在二进制数制中等于111111。
最小的3位十六进制十进制数是10016(25610),最高的是FFF16(409510)。最大的4位十六进制数是FFFF16(65,53510)。
十六进制数的表示
如果有4、8、12或16位二进制数字,那么通过添加额外的十六进制十进制数,就可以很容易地将十进制数和二进制数转换为十六进制十进制数
例如,10 1101 1000 1011 2是一个14位的二进制数,用3位的十六进制十进制数表示非常大,而用4位的十六进制十进制数表示太小。因此,为了使表示更方便,我们将在最高有效位(MSB)的左侧添加0。
然后十六进制编号系统的主要特点是有16个从0到F的计数位数,每个数字从最低有效位(LSB)开始的权重(值)为16。为了将十六进制数与其他数区分开来,使用了前缀。它要么是“#”,(散列),要么是“$”(在实际十六进制数值之前的美元符号
例如:#A5CE或$A5CE。
向二进制数添加额外的0
十六进制的主要优点是,在计算机中,它们非常紧凑地表示字段或数据的地址。与二进制数相比,十六进制十进制数的位数更少。如下图所示。
二进制号0011 1110 0010 1011
十六进制小数3 E 2 B
为了使表示更方便,我们将在最有效位的左侧添加0。
十六进制数字摘要
- “Hexa”这个词的意思是16。顾名思义,十六进制数字系统将使用一组16位数字。它们是0 - 9和A - F。
- 十六进制小数多用于计算机中存储数据地址。
- 这些数字用“$”(美元)符号或“#”(哈希)符号来表示。例:# A32C, A32C美元。
- 最小的3位十六进制十进制数是10016(25610),最高的是FFF16(409510)。最大的4位十六进制数是FFFF16(65,53510)。
- 在后面的章节中,我们将学习八进制数字系统和不同类型的数字系统中的错误解码。