一个数的原码,反码,补码怎么算

一个数的原码,反码,补码怎么算,第1张

数字,存在计算机中,就是“码”。

在计算机中,没有原码和反码

计算机,只是使用“补码”来存放“正负数”。

以八位为例:

数字 0 的存放形式是:0000 0000。

数字+1,就是加上一:0000 0001。

数字+2,就再加上一:0000 0010。

数字+3,就依此类推:0000 0011。

依次加一,即可。

----------

负数,就是依次减一。

数字 0 的存放形式是:0000 0000。

数字-1,就是减一:0000 0000-1,

 只保留八位,可得:1111 1111(=255)。

数字-2,就再减一:1111 1110(=254)。

数字-3,继续减一:1111 1101(=253)。

然后你就依次减一吧

----------

以上,是计算机中的补码。

---------

八位补码的表示范围:-128~+127。

八位补码的计算公式:

正数的补码:就是正数本身。

负数的补码:256-该负数。

(如果需要二进制,你就再转换一下。)

---------

补码,完全是由二进制加一减一自然形成的,和原码反码没有任何关系。

计算机中,也没有原码和反码。

所以,原码和反码,都没有任何用处。

八位补码的定义式是:

 [X]补码 = 2^8 -| X |  // X < 0

假如 X =-1011,推导如下。

[-1011 ] 补码 = 2^8 -| X |

= 1 0000 0000- | -1011 |

= 1 0000 0000 - 0000 1011

= (1111 1111 + 1)-0000 1011

= (1111 1111 - 0000 1011) + 1

 //( 括号中就是取反 )之后加一

= 1111 0100 + 1// 反码+1

= 1111 0101//补码

证毕。

除了下限(字长8位的-128、字长16位的-32768、)之外,\x0d\题目的那句话是正确的。\x0d\\x0d\求负数补码可用另一方法:[x]补 =x +模 \x0d\例如,字长8位的模 =2^8 =256\x0d\[-128]补 =(-128) +256 =128 =1000 0000b\x0d\又如,字长16位的模 =2^16 =65536\x0d\[-32768]补 =(-32768) +65536 =32768 =1000 0000 0000 0000b

真值 -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都有这个特性,共同的特点是两者相加等于模。

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

如果人工计算,应该按照减法进行,即:
0000 1100 - 1111 0111 = 0001 0101。
但是,CPU中,只有加法器,并没有减法器,遇到减法,CPU就要将减数全部的位,都求反加一,再与被减数相加,就是:
0000 1100 + 0000 1001 = 0001 0101。 和人工计算的结果相同。
注意:这里讲的“减数全部的位,都求反加一”,并不是常说的求“补码”,这是在CPU中自动进行的,无论这个数字,原来是不是补码,只要是做“减法”,CPU都要自动转换,包括最高位。
上述说法,可以参考《计算机组成原理》。
一般常说的求“补码”,是针对负数而言,由人工进行的。
规则是:符号位为1,不要变化,仅仅对后面的数值位,由原码求反加一。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13073772.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存