首页 理论教育 数制与编码:十六进制、补码、BCD码详解

数制与编码:十六进制、补码、BCD码详解

时间:2023-06-30 理论教育 版权反馈
【摘要】:为了解决这一问题,可以用十六进制数来取代二进制数,每个十六进制数对应于4位二进制数。表2-4 不同进制的数的表示方法2.编码补码有符号二进制整数用补码来表示,其最高位为符号位,最高位为0时为正数,为1时为负数。BCD码BCD是二进制编码的十进制数的缩写,BCD码用4位二进制数表示一位十进制数,每一位BCD码允许的数值范围为2#0000~2#1001,对应于十进制数0~9。它用内部硬件将10个十进制数转换为4位二进制数。

数制与编码:十六进制、补码、BCD码详解

1.数制

(1)进制

二进制数的1位(bit)只能取0和1这两个不同的值,可以用来表示开关量(或称数字量)的两种不同的状态,例如触点的断开和接通、线圈的通电和断电等。如果该位为1,则表示梯形图中对应的位编程元件(例如位存储器M和过程映像输出位Q)的线圈“通电”,其常开触点接通,常闭触点断开,以后称该编程元件为TRUE或1状态,如果该位为0,则对应的编程元件的线圈和触点的状态与上述的相反,称该编程元件为FALSE或0状态。

(2)多位二进制整数

计算机和PLC用多位二进制数来表示数字,二进制数遵循逢二进一的运算规则,从右往左的第n位(最低位为第0位)的权值为2n。二进制常数以2#开始,用下式计算2#1100对应的十进制数:

1×23+1×22+0×21+0×20=8+4=12

表2-4给出了不同进制的数和BCD码的表示方法。

(3)十六进制

多位二进制数的书写和阅读很不方便。为了解决这一问题,可以用十六进制数来取代二进制数,每个十六进制数对应于4位二进制数。十六进制数的16个数字是0~9和A~F(对应于十进制数10~15)。B#16#、W#16#和DW#16#分别用来表示十六进制字节、字和双字常数,例如W#16#13AF。在数字后面加“H”也可以表示十六进制数,例如16#13AF可以表示为13AFH。

2-4 不同进制的数的表示方法

978-7-111-58719-4-Chapter02-18.jpg

2.编码

(1)补码

有符号二进制整数用补码来表示,其最高位为符号位,最高位为0时为正数,为1时为负数。正数的补码就是它本身,最大的16位二进制正数为2#0111 1111 1111 1111,对应的十进制数为32767。

将正数的补码逐位取反(0变为1,1变为0)后加1,得到绝对值与它相同的负数的补码。例如将1158对应的补码2#0000 0100 1000 0110逐位取反后加1,得到-1158的补码1111 1011 0111 1010。

将负数的补码的各位取反后加1,得到它的绝对值对应的正数。例如将-1158的补码2#1111 1011 0111 1010逐位取反后加1,得到1158的补码2#0000 0100 1000 0110。(www.xing528.com)

整数的取值范围为-32768~32767,双整数的取值范围为-2147483648~2147483647。

(2)BCD码

BCD(Binary-coded Decimal)是二进制编码的十进制数的缩写,BCD码用4位二进制数表示一位十进制数(见表2-4),每一位BCD码允许的数值范围为2#0000~2#1001,对应于十进制数0~9。BCD码各位之间的关系是逢十进一,图2-10中的BCD码为-829。BCD码的最高位二进制数用来表示符号,负数为1,正数为0。一般令负数和正数的最高4位二进制数分别为1111或0000(见图2-10)。3位BCD码的范围为-999~+999,7位BCD码(见图2-11)的范围为-9999999~+9999999。

BCD码常用来表示PLC的输入/输出变量的值。TIA博途中的日期和时间一般都采用BCD码来显示和输入。拨码开关(见图2-12)内的圆盘的圆周面上有0~9这10个数字,用按钮来增、减各位要输入的数字。它用内部硬件将10个十进制数转换为4位二进制数。PLC用输入点读取的多位拨码开关的输出值就是BCD码,可以用“转换值”指令CONVERT将它转换为二进制整数。

978-7-111-58719-4-Chapter02-19.jpg

图2-10 3位BCD码的格式

978-7-111-58719-4-Chapter02-20.jpg

图2-11 7位BCD码的格式

用PLC的4个输出点给译码驱动芯片4547提供输入信号,可以用LED七段显示器显示一位十进制数(见图2-13)。需要使用“转换值”指令CONVERT,将PLC中的二进制整数或双整数转换为BCD码,然后分别送给各个译码驱动芯片。

978-7-111-58719-4-Chapter02-21.jpg

图2-12 拨码开关

978-7-111-58719-4-Chapter02-22.jpg

图2-13 LED七段显示器电路

(3)ASCⅡ码

ASCⅡ码(American Standard Code for Information Interchange,美国信息交换标准代码)由美国国家标准局(ANSI)制定,它已被国际标准化组织(ISO)定为国际标准(ISO646标准)。ASCⅡ码用来表示所有的英语大/小写字母、数字0~9、标点符号和在美式英语中使用的特殊控制字符。数字0~9的ASCⅡ码为十六进制数30H~39H,英语大写字母A~Z的ASCⅡ码为41H~5AH,英语小写字母a~z的ASCⅡ码为61H~7AH。

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

我要反馈