
通常,计算机中用补码来表示带符号数。正数的补码同原码,负数的补码符号位为1,数值位为模减此数绝对值。补码的求法一般有两种:
1)用补码定义式:
[X]补=2n-|X| -2n-1≤X≤0(整数)
【例1-3】 X=-0101111B,n=8,求[X]补。
解:[X]补 =28+(-0101111B)
=100000000B-0101111B
=11010001B(mod 28)
在用补码定义式求补码的过程中,由于做一次减法很不方便,故该法一般不用。
2)用原码求反码,再在数值末位加1可得到补码,即[X]补=[X]反+1。
补码求法公式推导:
设8位二进制数的模为28=256
当X<0,[X]补=28-|X|=256-|X|=255-|X|+1
=[X]反+1
【例1-4】 求+4和-4的原码、反码和补码。
解:
(1)X=+4[X]原=[X]反=[X]补=00000100B
(2)X=-4[X]原=10000100B
[X]反=11111011B
[X]补=11111100B
需要说明的是,计算机内的一组二进制编码和它们的“真值”之间存在着“一对多”的关系,如41H可以表示:有符号数+65的补码;无符号数65;大写字母“A”的ASCII码和十进制数41D的压缩BCD码。只有定义、使用该数据的程序员才知道它的真值。
ICP经营许可证:鄂B2-20080078
(于2003年首获许可证:鄂B2-20030029)
鄂公网安备:420100003343号
© 2002-2025 武汉制信科技有限公司 版权所有
投诉举报电话:027-87592219