理论教育 二进制编码的十进制数及其符号位表示:码制优化方案

二进制编码的十进制数及其符号位表示:码制优化方案

时间:2023-06-17 理论教育 版权反馈
【摘要】:对n位字长的二进制数,最高位仍为符号位。BCD是二进制编码的十进制数的缩写,BCD码用四位二进制数表示一位十进制数,每一位BCD码允许的数值范围为2#0000~2#1001,对应于十进制数0~9。四位二进制数共有16种组合,有6种组合没有在BCD码中使用。BCD码的最高位二进制数用来表示符号,负数为1,正数为0。

二进制编码的十进制数及其符号位表示:码制优化方案

带符号数的表示方法:二进制数最高位表示数符,其余位表示数值。

最高位 0:+ 1:-

例:00000100表示+4 10000011表示-3

1.原码

尾数部分直接表示数值本身绝对值:此称原码表示法。

表达式为

例:n=8,x=+4,则[x]=00000100

n=8,x=-3,则[x]=27-(-00000011)=10000011

存在两种表示方式:[x]=00000000 或 x=+0

[x]=10000000 或 x=-0

2.补码

二数相减,用电路实现减法,结构极为复杂。实际实现时,用加法器就可完成减法。加法器容易制作,故运算更加方便。用8位二进制数表示一个带符号数,最高位是符号位,剩下7位表示数值。

当x≥0时,[x]是x的本身值,最高位为0;

当x<0时,[x]=28+x。

例:①x=+0000101B,[x]=00000101B;

②x=-0000101B,[x]=100000000B+(-0000101B)=11111011B。

对于负数x,求[x]的简单方法:绝对值变反加1,再在最高位添1。

例:二进制补码的简明方法。(www.daowen.com)

设y=-0000010B(-2+) [y]=11111101B,再加1,得:11111110B

设y=-0000110B(-6+) [y]=11111010B

已知[X],求X。 正数:X即[X],只是最高位0变成+;负数:数值变反加1,再添负号(-)。

例:已知[X]=11111010B 数值变反:0000101B

加1:0000110B

添加符号:-0000110B

例:利用补码计算 14-32=14+(-32)=-18

x=14=+0001110B,[x]=00001110B;

y=-32=-0100000B,[y]=11100000B;

[x+y]=[x]+[y]=00001110B+11100000B=11101110B。

x+y=-0010010B=-(16+2)=-18。

对n位字长的二进制数,最高位仍为符号位。-128是特殊情况:最高位既是数符位又是数值位。8位二进制数可表示带符号数数值范围为:

00000000B~01111111B 10000000B~11111111B

计算机和PLC加减运算均以补码形式出现,当两个正数相加(或一个正数减去一个负数),和(或差)不能超过+127,否则结果变为负;当两个负数相加(或一个负数减去一个正数),和(或差)不能小于-128,否则结果变为正,此时称为溢出。

3.BCD码

实际应用中,一般计算问题的原始数据大多采用十进制数,人们为计算机设计了一种用二进制数为它编码,该编码称BCD码(Binary Coded Decimal)。BCD是二进制编码的十进制数的缩写,BCD码用四位二进制数表示一位十进制数(如表5.1所示),每一位BCD码允许的数值范围为2#0000~2#1001,对应于十进制数0~9。四位二进制数共有16种组合,有6种组合(2#1010~2#1111)没有在BCD码中使用。

BCD码的最高位二进制数用来表示符号,负数为1,正数为0。BCD码各位之间的关系是逢十进一。一般令负数和正数的最高4位二进制数分别为1111和0000。一个字节的BCD码可表示数值范围为0~99,16位BCD码的范围为-999~+999,32位BCD码的范围为-9999999~+9999999。

BCD码运算时,每半个字节结果不超过9则不用修正,超过9则加6。

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

我要反馈