大家好,欢迎来到IT知识分享网。
十六进制数
文章目录
1、概述
十六进制 数字是一种以16为基数的计数系统,使用十六个数字来表示其数字的值。 十六进制数使用一组或一组四个二进制数字来形成十六进制数字。 换句话说,一个十六进制数字相当于一个半字节,从上一篇文章我们知道,半字节是一个四位二进制数。 最右边的半字节形成最低有效的十六进制数字,并且可以将半字节添加到其左侧以表示更大的十六进制数。
计数系统的架构是针对 8、16、32 和 64 位等二进制数而设计的,这些数字以零 (0) 和一 (1) 的表示方式变得相当混乱和复杂。 事实上,读取和写入较大的二进制数可能会导致错误,并且信息可能会变得可疑。 较大的二进制数的表示可以通过使用更高的基值编号系统来管理,与二进制数字(位)相比,该系统将容纳更多的单位值。 八进制(以 8 为基数)数字可以使用八 (8) 个数字(0 到 7),并且可以容纳 3 位二进制数。 3 位二进制数非常小,不适合 8、16、32 和 64 位架构等。同样,十进制数适合表示 3 位二进制数,但浪费了两个(8 和 9) 数值。 换句话说,在表示二进制数时,八进制计数系统比十进制(十进制)数字更合适。
合适且适当的计数系统是能够容纳 4 位二进制数的系统。 我们知道,一个 4 位数字可以容纳十六 (16) 个值(二的四次方)。 这需要一个具有 16 个值(即从 0 到 15)的编号系统。十进制数字的数字范围是从 0 到 9 以及以上的数字,例如 10、11、12、14 和 15 不能用它来表示 涉及使用以前使用过的号码。 在十六进制中,九(9)以上的值由A、B和C等英文字母表示。这些字母的使用克服了十(10)及以上值的数字重复问题。
这意味着十六进制的 A、B、C、D、E 和 F 分别表示十 (10)、十一 (11)、十二 (12)、十三 (13)、十四 (14) 和十五 (15) 。 这同样适用于表示“1010”、“1011”、“1100”、“1101”、“1110”的等效二进制数。 和“1111”,分别。 通过将二进制数分成 4 位组,可以缓解表示较大二进制数的困难。 例如,考虑$ (01010)_2$,它是一个 16 位二进制数,同样可以写为 ( 01010 ) 2 (1101 1001 1100 1010)_2 (01010)2。 后者是通过分成一组或一组 4 位来实现的,所得的二进制数更容易读取。
通过将二进制数转换为等效的十六进制数,可以进一步减少二进制数的长度和复杂性。 然而,与十进制数相比,十六进制数更复杂,并且仅在数字系统中使用。 4 位二进制数“0000”、“0001”、“0010”、…和“1111”由单个十六进制数字表示。 4 位二进制数称为“半字节”,相当于十六进制数字。 该字节由 8 位或两个半字节组成,两个十六进制数字表示其等效值。 例如,二进制数$ ()_2 $被分成两半/半字节 ( ) 2 (1010 0111)_2 ()2。 其中, ( 1010 ) 2 (1010)_2 (1010)2相当于十进制的 ( 10 ) 10 (10)_{10} (10)10、十六进制的 ( A ) 16 (A)_{16} (A)16。 同样,第二个半字节 ( 0111 ) 2 (0111)_2 (0111)2相当于十进制和十六进制的(7)。 因此,总的来说,二进制数$ ()_2$ 相当于十六进制数 ( A 7 ) 16 (A7)_{16} (A7)16。
2、十六进制数字
下表列出了从 0 到 15 的十进制数及其对应的二进制和十六进制数。
上表显示了十六进制数字从 0 到 15 的等效十进制数。 对于十六进制中超过十五(F)的数字,采用与其他计数系统类似的过程,即在左侧添加一个有效数字。 例如,“16”转换为二进制为 ( 00010000 ) 2 (0001 0000)_2 (00010000)2,其等效的十六进制为 ( 10 ) 16 (10)_{16} (10)16。 类似地,17 的十六进制数相当于 ( 11 ) 16 (11)_{16} (11)16,按照相同的过程,可以将十六进制数扩展为所需的值。 使用上表,任何二进制数都可以轻松转换为其等效的十六进制数。 例如,16 位数字 ( 11011 ) 2 (1010 1100 0111 1011)_2 (11011)2转换为十六进制为 ( A C 7 B ) 16 (AC7B)_{16} (AC7B)16。 与 16 位长的 0 和 1 行相比,编写和记住这个十六进制数要容易得多。 因此,最好在十六进制计数系统中写入二进制数,以避免错误等。
在数字系统中,特别是在编写程序时,在最高有效数字后面使用“#”(前缀)符号来表示十六进制值。 例如,上面的十六进制数(AC7B16)也可以写成(#AC7B)。
3、以十六进制计数
如上所述,可以通过使用附加的有效数字来扩展十六进制数的值。 从“0”开始的单个十六进制数字最多可以计数到 # F ( 15 × 1 6 0 = 1 5 10 ) \#F (15 \times 16^0 = 15_{10}) #F(15×160=1510),扩展到两位数字可以计数到 # F F ( 15 × 1 6 1 + 15 × 1 6 0 = 25 5 10 ) \#FF (15 \times 16^1+15 \times 16^0 = 255_{10}) #FF(15×161+15×160=25510)。 同样,#FFF 和 #FFFF 分别可以计数到 和 。 下表列出了十六进制数中每个数字的权重。
4、二进制数补零
由于二进制数被分成由 4 位组成的组,以便确定其等效的十六进制数。 这需要一个由四 (4) 的倍数位组成的二进制数,例如 4、18、12、16 和 20 等。但是,在处理二进制数时情况可能并非如此,并且二进制数的位长度可能会有所不同。 解决方案是从最低有效位 (LSB) 开始将二进制数以 4 位为一组进行分割,最终,我们将在末尾留下少于 4 位的数据。 前导零被添加到剩余位中,将其长度扩展至 4 位。 这组 4 位构成了十六进制数的最高有效位 (MSD)。 下表中,非标准13位二进制数(1 0101 1101 )通过添加前导零转换为16位(可被4整除)二进制数,然后确定其等效的十六进制数。
在上面的示例中,13 位数字需要将具有零值的 3 位添加到最左侧,才能使其成为 16 位二进制数。 同样,10 位二进制数需要添加六 (6) 个零位。 使用十六进制数可将二进制数的长度减少四 (4) 倍,并且从二进制到十六进制或从十六进制到二进制的转换既简单又快捷。
5、十六进制到十进制转换
十六进制到十进制值的转换是利用上一篇文章中介绍的加权数字和的方法来实现的。 在以下示例中,十六进制数 (#7DE5) 转换为十进制数。
6、十进制到十六进制转换
从十进制到十六进制的转换需要应用重复除以16的方法,该方法在上一篇文章中用于将十进制数转换为其等效的二进制值。 在以下示例中,使用相同的十进制数 ( 238 ) 10 (238)_{10} (238)10 来获取其等效的十六进制数。
7、二进制到十六进制转换示例
8 位二进制数 ( ) 2 ()_2 ()2到十六进制数的转换如下所示。
8、十六进制转二进制和十进制示例
下面以 #8C4A 与其等效的二进制和十进制数的转换为例。
9、总结
- 十六进制数字使用以 16 为基数的编号系统,其数字可以有从 0 到 15 的十六 (16) 个数字。在十六进制中,大写字母:A、B、C、D、E 和 F 相当于 10 、 11、 12、 13、 14 和 15。
- 在十六进制数中,每个数字都是一组或一组 4 位。 通过将二进制数分成 4 位组,然后根据每个 4 位组的值,为每个组分配从“0”到“F”的等效十六进制值,即可获得十六进制中的二进制数的等效值。
- 二进制数可能需要在最左侧(最高有效位)添加前导零以形成 4 位组。
- 十六进制数通过使用“16”作为下标或最左侧的前缀(#)来表示,例如 2A7E16 或#2A7E。
- 可以使用加权数字和的方法将十六进制数转换为十进制数。 从十进制到十六进制的转换需要应用重复除以16的方法。
- 十六进制数可用于表示较大的二进制数。 十六进制数将其等效二进制数的长度减少了四倍 (4)。 此外,从二进制到十六进制以及从十六进制到二进制的转换既简单又快捷。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/143250.html