分两种情况,以八位原码转换为例:
正数(符号位为0的数)补码与原码相同.
负数(符号位为1的数)变为补码时符号位不变,其余各项取反,最后在末尾+1
例如:原码01100110,补码为:01100110
原码11100110,先变反码:10011001,再加1变为补码:10011010
计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
特性
1、一个负整数(或原码)与其补数(或补码)相加,和为模。
2、对一个整数的补码再求补码,等于该整数自身。
3、补码的正零与负零表示方法相同。
上面的回答有一部分是错误的。
正数:原码=反码=补码;负数二进制符号位不变,其余取反加1 ,如:
补码:1101001
--------------------------------------------------------
如果也用这个例子,应该是:
原码:
1010110 + 1 =1010111
或者也可以用符号位不变,其余减1取反
补码的补码等于原码(就是把补码看作原码,再来一次奖原码转为补码的运算,就得到了原码)。
例如:
-4的8位
原码:1000
0100
反码:1111
1011
补码:1111
1100
将现在1111
1100看作原码,再求一次补码:
反码:1000
0011
补码:1000
0100----结果就是要求的原码。
正数:原码=反码=补码;负数二进制取反加1 ,如:
补码:1101001
--------------------
原码:0010110 + 1 =0010111
补码转换成原码?
你要知道,并非所有的补码,都有对应的原码。
在计算机系统中,数值,一律采用补码表示和存储。
数值、补码,是一一对应的,可以直接转换。
你应该想办法,把补码转换成数值,才对。
你为什么要把“补码转换成原码”呢?这是毫无意义的事。
在计算机中,也不用原码和反码,你转换过来原码,根本就没有用啊!
因此,不必把“补码转换成原码”。