您的位置:首页 >知识经验 >

补码原码反码怎么计算(补码原码反码)

大家好,我是小新,我来为大家解答以上问题。补码原码反码怎么计算,补码原码反码很多人还不知道,现在让我们一起来看看吧!

1、原码、反码、补码 表示一个数值要先说明是用多少bit,例如:   用8bit表示数值时,(-128)没有相对应的原码和反码, (-128)补码 = (1000 0000) 同理(2B=16bit)表示:(-32768)补码=(1000 0000 0000 0000),后面回给出证明, 因为它是不能简单的用取反加一的方法来求反码的。

2、 2、 证明:用(2B=16bit)表示:(-32768)补码=(1000 0000 0000 0000) (1)32767(正数补码与原码相同)是0111 1111 1111 1111 (2)-1的补码,其原码取反在加一得 1111 1111 1111 1111 (3)0111 1111 1111 1111+1000 0000 0000 0000=1111 1111 1111 1111 (4)(令上式x==1000 0000 0000 0000)即:32767+x=-1 (5)x=-32768   至于用(2B=16bit)表示,取反加一求(-32768)的补码,还望哪个高手指点简单的证明过程。

3、 希望大家以后在被问为什么(-128)补码 = (1000 0000), (-32768)补码=(1000 0000 0000 0000)不要在说什么取反加一的话,   那样你证明我看看。

4、给出证明,免得人家不明白还以为你在谈什么高深的话题, 结果却是被忽悠了。

5、 3、 下面举例说明求负数的补码的补码 -1的补码是0xFFFF. 它是这样求的: -1的原码: 1000 0000 0000 0001 ,   数值位按位求反: 0xFFFE==1111 1111 1111 1110, 末位加1: 0xFFFF==1111 1111 1111 1111 现在还按这个补码的求法, 作用在0xFFFF上, 0xFFFF : 1111 1111 1111 1111 数值位按位求反: 1000 0000 0000 0000 末位加1: 1000 0000 0000 0001, 这样又得到了-1。

6、 就像求负数的绝对值,彼此导来导去都可以。

7、 ************************************************** ************************* ************************************************** ************************* 补码的计算和引进补码的原因:   数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负). 这就是机器数的原码了.假设机器能处理的位数为8.即字长为1byte, 原码能表示数值的范围为(-127~-0 +0~127)共256个. 有了数值的表示方法就可以对数进行算术运算. 但是很快就发现用带符号位的原码进行乘除运算时结果正确,   而在加减运算的时候就出现了问题,如下: 假设字长为8bits

(1)10 - (1)10= (1)10+ (-1)10 = (1)10 。

本文到此讲解完毕了,希望对大家有帮助。

免责声明:本文由用户上传,如有侵权请联系删除!