一. 原码表示
二 补码表示
[x ]补=[x ]反+2-n
补码,正数补码是自己,负数的补码等于自己加上模
- 定点小数的模是2
- 定点整数的模是2的(n+1)次方。
- 已知一个数X的补码,那么X的相反数的补码为:X的补码所有位数按位取反,最后再加1
- 任意两数的补码之和等于两数之和的补码
[x]补+[y]补=[x+y]补
三 整数的原码,补码,反码之间的变换
(1) 利用(负整数)原码求反码
- 正整数的原码,反码,补码都相同。
- 源码符号为为1不变,整数的每一位二进制数位求反得到反码。
(2)利用(负整数)反码求补码,
- 反码符号为为1不变,反码数值位最低位加1,得到补码。
(3)正整数的原、补、反相同。
四 练习题
1.假设机器字长为8位(1符号位+7数值位),写出下列各整数的原码、反码和补码。
(1)-35 (2)-1 (3)-128
十进制 | 二进制 | 原码 | 补码 | 反码 |
---|---|---|---|---|
-35 | -00100011 | 10011100 | 11011100 | 11011101 |
-1 | -00000001 | 10000001 | 11111110 | 11111111 |
-128 | 空 | 无 | 无 | 10000000 |
2、假设机器字长为8位(1符号位+7数值位),写出下列各小数的原码、反码和补码。
(1)-47/64 (2)-1/128 (3)-1
4、假设机器字长为8位,计算(补码)下列各式的值。
(1)57+84
(2)57-84
(3)-57+84
(4)-57-84
5. 已知X和Y,用变形补码计算X+Y,并指出结果是否溢出。
注意:设机器字长6位,其中符号位1位,数值位5位,
(1) X=11011,Y=-10101;
(2) X=-11011,Y=-10101;