题目
十进制[1]数(-89)的补码为:________。(字长为8位)
十进制[1]数(-89)的补码为:________。(字长为8位)
题目解答
答案
1010 0111
解析
本题考查十进制数转换为补码的知识。解题思路是先确定该数为负数,对于负数求补码,需要先求出其绝对值的原码,再将原码除符号位外取反得到反码,最后在反码的基础上加 1 就可得到补码。
- 首先求$-89$绝对值$89$的二进制表示:
- 用除$2$取余的方法,$89\div2 = 44\cdots\cdots1$;
- $44\div2 = 22\cdots\cdots0$;
- $22\div2 = 11\cdots\cdots0$;
- $11\div2 = 5\cdots\cdots1$;
- $5\div2 = 2\cdots\cdots1$;
- $2\div2 = 1\cdots\cdots0$;
- $1\div2 = 0\cdots\cdots1$。
- 从下往上取余数,得到$89$的二进制表示为$1011001$。
- 然后得到$89$的$8$位原码:
- 因为字长为$8$位,正数的原码、反码、补码相同,所以在前面补$0$,$89$的$8$位原码为$01011001$。
- 接着求$-89$的反码:
- 负数的反码是在其绝对值原码的基础上,符号位不变(最高位为符号位,$1$表示负数),其余位取反。
- 所以$-89$的反码为$10100110$。
- 最后求$-89$的补码:
- 负数的补码是在其反码的基础上加$1$,即$10100110 + 1=10100111$。