原码:就是原来的数值转变为计算机中储存的二进制格式。比如10的原码为0 0001010(此时以8位机为例)
反码:正数的二进制反码与原码一样,负数的二进制反码除了符号位其他位都取反(即1取0,0取1)。比如10的反码为0 0001010(符号位用于表示数的正负,0表示正,1表示负);-10的原码为1 0001010,-10的反码为1 1110101
补码:正数的二进制补码与原码一样,负数的二进制补码是其反码加1,符号位保持不变。负数在计算机中就是以补码的方式进行储存的。比如10的补码为0 0001010;-10的补码为1 1110110。
正常的加减运算:+13和+10; +13和-10; -13和+10; -13和-10
+13和+10:0 0001101+0 0001010=0 0010111
+13和-10:0 0001101+1 1110110=0 0000011
-13和+10: 1 1110011+0 0001010=1 1111101
+13和-10: 1 1110011+1 1110110=1 1101001
注意:最终运算的结果都是补码形式,如果最终结果是正,则结果既是补码又是原码;如果最终结果是负,则结果只是补码,要将结果减去1,然后再取反码,此过程中符号位不变。
符号位的确定:两个加数的符号位和最高位数字位的进位(即符号位的前一位有进位则加1,无进位则加0)相加,结果为偶数,则是正数,最终符号位为0;结果为奇数,则为负数,最终符号位为1。