原码、反码、补码都是计算机中对数字的二进制表示方法,是为了方便计算机进行计算,以二进制码存储。
首先是原码:原码=符号位+真值。将最高位作为符号位(0表示正,1表示负),其它数字位代表数值本身的绝对值的数字表示方式。
例如+5的原码:0 0000101,而-5的原码:1 0000101。
当我们运用原码来进行运算时,其正数之间的加法通常是不会出错的。而正数与负数相加,或负数与负数相加,都会算出一些奇怪的结果,这是由于存在符号位引起的。光0就分为+0和-0,并且这俩个数还不一样,+0为00000000,而-0为1000000。所以原码,虽然直观易懂,易于正值转换。为了方便进行计算,并为了得到正确答案,于是便有了反码。
反码:对正数而言其的反码还是等于原码,但负数的反码就是他的原码符号位不变,其余各位取反。反码来计算相反数问题答案是正确的,但是却让两个负数相加的出错了。为了式计算更加的正确,我们又引入了补码这一概念。
补码:正数的补码等于他的原码,负数的补码等于反码+1。当我们用补码来计算时,可以发现,所有的计算都可以正确的得到正确答案。
补:0的反码、补码都为0