首页 理论教育 单片机开发:数制转换与编码

单片机开发:数制转换与编码

时间:2023-10-23 理论教育 版权反馈
【摘要】:1)二进制数转换为十六进制数。由于十进制只有10个数,最少需要4位二进制数才能表示,但4位二进制数可以产生16种编码,从这16种状态中任意选取10种,就形成多种BCD码。最常用的BCD码是8421码,8421对应二进制编码相应位的权。通常ASCII码用7位二进制数进行编码,可表示128种字符。

单片机开发:数制转换与编码

单片机信息处理工具,不论是指令还是数据,如采用单片机进行处理,都必须采用进制(Binary)编码,即使是图形和声音这类信息也是使用二进制数据来表示。在日常生活中,数据多用十进制(Decimal)表示,但在单片机程序设计中,数据一般采用十六进制(Hexadecimal)表示;在数据通信中,数据通常采用ASCII(American Standard Code for In-formation Interchange,美国标准信息交换码)。因此,要进行单片机程序设计,首先要掌握不同数制之间的转换方法。

1.不同数制间的转换方法

(1)二进制、十六进制数转换成十进制数

将任意进制数转换成十进制数,只需将该数按相应进制的位权展开,然后按十进制相加,结果就是十进制数。例如:

978-7-111-43463-4-Chapter01-36.jpg

(2)十进制数转换为二进制、十六进制数

将十进制数转换为其他进制数时,小数部分和整数部分采用不同方法。

1)十进制整数转换成二进制数。在转换n位十进制整数时,其转换方法是“除基取余”。即用二进制数的基数2去除需要转换的十进制数,保存除得的商数,余数为转换成二进制数的最低位d0;然后再用2除以上次所得的商,得到新的余数,作为次低位d1。如此重复进行,直到所得的商为零,最后一次所得的余数便是二进制数的最高位dn-1。十进制转换为十六进制时,方法相同,只是基数是16。例如:

978-7-111-43463-4-Chapter01-37.jpg

结果:7863D=0x1EB7(0x1EB7=1EB7H,单片机中用0x表明后面的数为十六进制)。

2)当十进制数为纯小数时,其转换方法为“乘基取整”,也就是用二进制基数2乘以十进制小数,得到一个整数部分和一个小数部分。取整数部分为二进制小数部分的最高位,余下的小数部分再用基数2去乘,结果又得到一个整数部分和一个小数部分。这次得到的整数是二进制小数的次高位,如此反复下去,直到余下的小数部分为零或者所得的二进制小数足以满足准确度为止,最后得到的那一个整数就是二进制小数的最低位。例如:

978-7-111-43463-4-Chapter01-38.jpg

结果:0.6785D=0.1011B。

3)对于既有整数又有小数的混合数,则将整数部分和小数部分分别转换。

(3)二进制十六进制数之间的相互转换

由于这两种进制数的基数都是2的整数次幂,所以相互之间的转换十分简便。4位二进制可以用一位十六进制表示。根据这个原则,两种进制之间的转换很方便。

1)二进制数转换为十六进制数。

例如:978-7-111-43463-4-Chapter01-39.jpg

结果:100110011.1011B=9B.DH。(www.xing528.com)

2)十六进制数转换为二进制数。

例如978-7-111-43463-4-Chapter01-40.jpg

结果:0x236.BA=1000110110.1011101B。

2.常用的码制

在单片机中,除了表示数以外,还要表达字母字符等信息,它们也是以二进制的形式出现的,只是编码的形式不同。计算机中常见的编码有BCD码和ASCII码。

(1)位、字节、字和字长

位、字节、字以及字长是计算机中常用的概念。位(bit)是指一个二进制位,它是计算机中信息存储的最小单位;字节(Byte)指8个二进制位,通常存储器是以字节为单位存储信息的,一般用大写的B表示;字(Word)是计算机内部进行数据处理、数据传递的基本单元。一个字所包含的二进制位数称为字长,一般用大写的W表示。计算机中通常定义一个字长为两个字节。

(2)BCD码

BCD(Binary Coded Decimal)码的编码方式是采用二进制数来编码十进制数。由于十进制数比较常用,在计算机的输入/输出中仍经常采用十进制数。经过这种编码后的十进制数称为BCD码。由于十进制只有10个数,最少需要4位二进制数才能表示,但4位二进制数可以产生16种编码,从这16种状态中任意选取10种,就形成多种BCD码。最常用的BCD码是8421码,8421对应二进制编码相应位的权。二进制、十进制、十六进制和BCD码的对应关系见表1-10。

表1-10 8421BCD码对照表

978-7-111-43463-4-Chapter01-41.jpg

(续)

978-7-111-43463-4-Chapter01-42.jpg

(3)ASCII码

ASCII(American Standard Code for Information Interchange,美国标准信息交换码)码是一种在国际上广泛使用的标准信息代码,也是计算机系统中表示字符的常用编码。通常ASCII码用7位二进制数进行编码,可表示128种字符。其中包括大小写英文字母各26个,数字(0~9)10个,一些专用符号以及控制符号等。如果采用8位二进制数进行编码,将其低7位表示ASCII,最高位用作奇偶校验位,校验位表达低7位包含“1”的个数,个数为奇数,则校验位为“1”,否则为“0”。在信息传递过程中,错误的校验非常有用。十六进制数的ASCII码见表1-11。

表1-11 十六进制数ASCII码表

978-7-111-43463-4-Chapter01-43.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈