首页 理论教育零起点学习单片机编程|二进制数与十六进制数

零起点学习单片机编程|二进制数与十六进制数

【摘要】:如果在程序中出现了“0B”和“13”这样的数字,它不是十进制数,而是十六进制数。在计算机硬件原理的学习中,二进制数和十六进制数是经常使用的。例如它的P1口输出的逻辑状态P1.7~P1.0依次为1100 0101B,如果用十进制表示就必须将二进制化为对应的十进制,一时很难看出结果。图1-12二进制、十进制、十六进制数对应表按图1-12,我们很容易得出任何字节的十六进制数到十进制数的换算结果。它意思是二进制码的十进制表示。

如果在程序中出现了“0B”和“13”这样的数字,它不是十进制数,而是十六进制数。在计算机硬件原理的学习中,二进制数和十六进制数是经常使用的。特别是在单片机的学习中也是这样。什么原因呢?举一个例子,8051单片机是8位机,按一字节由8位二进制数进行输入/输出。例如它的P1口输出的逻辑状态P1.7~P1.0依次为1100 0101B,如果用十进制表示就必须将二进制化为对应的十进制,一时很难看出结果。而用十六进制就很容易。因为1100 0101B=0C4H。因为高4位大于10,所以前面加“0”。如果是1000 0101B,则1000 0101B=84H,前面不加“0”。转化为十六进制后再转为十进制,就很容易了。0C4H=12×16+4=196。84H=8×16+4=132。下面列出二进制/十六进制和十进制的对应关系表,按一字节计算,如图1-12所示。在汇编语言中,数字后“H”代表十六进制数,数字后“B”代表二进制数。

978-7-111-47138-7-Chapter01-12.jpg

图1-12 二进制、十进制、十六进制数对应表

按图1-12,我们很容易得出任何字节的十六进制数到十进制数的换算结果。当然,若进行可逆换算,例如由十进制换算为十六进制,就比较麻烦了,在实际使用中较少用到。对于各种进制之间换算的详细内容可参考本章最后一节。(www.chuimin.cn)

此外,我们还常常会用到一种编码,即BCD码(Binary Code Decimal)。它意思是二进制码的十进制表示。

例如,时钟数值的小时显示0000 1001=09,只能逢10进1位,取消A、B、C、D、E、F的编码表示。对于0001 0000=10,而不是16。在数码管显示方面广泛应用BCD码。