计算机原理简单题!用8位进制数求-128的原码,补码,要过程哦!别太急,写正确哦!

如题所述

先求+128的八位2进制:128÷2=64余0,64÷2=32余0,32÷2=16余0,16÷2=8余0,8÷2=4余0,4÷2=2余0,2÷2=1余0
得出八位二进制表示为1000 0000,正128要8位已经如此,所以已经满了8位就不必在前面加“1”变成负数形式了(负数的二进制形式第一位都用1表示负号)
所以-128的原码即1000 0000
取反码后为1111 1111,就是除了符号位,其余都0变1
最后再在反码的尾巴上加1得补码1000 0000。因为1和1遇到就要往前一位进,比如0+1=1, 1+1=0,倒数第二个位就要+1了,如果倒数2本来就是1,那么+1就又变成0并且再给倒数第三位进1也就是+1,直到遇到某位是0,+1后得到1为止。
因为你要的是8位,so反码是1111 1111,变补码从倒数第一位+1后一直都在进位,所以变成了10000000.为啥第一位数还是1?因为你要变成8位二进制,这个1代表-128的负号了,就作罢。
懂了不?
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-12-01
正数的原码反码补码就是它自己,不在讨论之列。

8位2进制,
有符号数 原码范围是:
(1) 0<=X < 2^(n-1)
(2) -2^(n-1) < X <=0
这里 n=8
原码范围 0~127, -127~0
所以,8位2进制,不能表示 -128的原码。
------
补码
负数x的补码,其二进制表示等同于 无符号整数 2^n + x,其中n是这种类型的位数。
现在 n=8, x= -128, 它的补码 是 无符号整数 2^8 + (-128) = 128
写成 16进制是 0x80, 写成 2进制是 1000 0000
-------
平时的 不考虑符号位 的原码的反码加1等于补码的算法 只是计算技巧,用于-128 则有点牵强俯会,同 -0 混淆。本回答被提问者和网友采纳
相似回答