原始代码是计算机中数字的二进制定点表示。原代码表示在数值前加一个符号位(即最高位为符号位):正数为0,负数为1(0有0和-0两种表示),其余位表示数值的大小。
反码是一种数字存储,但大多数计算机一般不会用反码来表示数字,因为补码可以更有效地表示计算机中数字的形式。
补码:在计算机系统中,数值总是用补码来表示和存储。原因是有了补码,符号位和数值域可以统一处理;同时,加减法也可以统一。另外,补码和原码相互转换,运算过程相同,不需要额外的硬件电路。-以上来自百度百科。
我们来谈谈如何索要这些。
先找原码
如果机器字长为n,那么一个数的原码就是n位的二进制数,其中最高位是符号位:正数为0,负数为1。剩余的n-1位代表估计值的绝对值。
例如:X=101011,[X] original=001011x=-101011,[x] original=101011,位数不足以填入0。
找出原码,找到补码和补码就行了。
对于正数,源代码和补码都是一样的,补码就是正数本身。
对于负数,原始代码是二进制的,符号位为1,数值部分的绝对值为x。
反码是符号位为1,其他位是原码的反码。
补码是指符号位为1,其他位是原码的倒数,没有它的位加1,也就是说负数的补码是它没有它的补码位加1。
例如:
1011
原代码:01011
逆码:01011 //正值时,逆码=原码。
补码:01011 //正值时,补码=原码。
-1011
原代码:11011
逆码:当10100 //为负时,逆码为原码的逆码。
补码:当10101 //为负数时,补码为原码1的倒数。