补码是在反码后加1,那个1是怎么加的?

2025-04-07 13:05:52
推荐回答(4个)
回答1:

真值 -11d = -1011b , 若字长8位,则:

[-11d]原 =10001011b , 最高位是du符号位,1表示负数,其余为数值位

[-11d]反 =11110100b , 将原码除符号位之外的各位取反得反码

[-11d]补 =11110101b ,将反码末位加1得补码

d是十进制数后缀 , b是二进制数后缀

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

原码10010= 反码11101 (10010,1为符号码,故为负)

(11101) 二进制= -13 十进制

补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

扩展资料:

假设当前时针指向8点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨2小时,即8-2=6;另一种是顺拨10小时,8+10=12+6=6,即8-2=8+10=8+12-2(mod 12).在12为模的系统里,加10和减2效果是一样的,因此凡是减2运算,都可以用加10来代替。

若用一般公式可表示为:a-b=a-b+mod=a+mod-b。对“模”而言,2和10互为补数。实际上,以12为模的系统中,11和1,8和4,9和3,7和5,6和6都有这个特性,共同的特点是两者相加等于模。

参考资料来源:百度百科-补码

回答2:

第一个问题,有进位。01+1=10 ,同理011+1=100
就好像十进制里的 0999+1=1000 一样。

第二个问题,是的。

回答3:

求某个负数的补码,方法很简单的。

八位计算机中,数值 0 的补码是:0000 0000。

将其减一,不就是-1 的补码吗? 1111 1111。

从 0 减去 8,就是-8 的补码:

 0000 0000-0000 1000 = 1111 1000。

根本就不用弄“取反加一”那么麻烦。

原码反码符号位,都用不上的。

回答4:

因为   

模-1-a=取反

且  

补数=模-a=-a

所以

补数=取反+1