计算机中的符号数有三种方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示的正,用1表示负。而数值位,三种表示方法各不同。在计算机系统中,数值一律用补码来表示和存储。
【原码】
原码就是计算中对数字的二进制表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位),正数该位为0,负数该位为1,其余位表示数值的大小
例如: 我们用8位二进制表示一个数
+11的原码为:00001011
-11的原码为:10001011
原码有符号位不能直接参与运算,需要转化为补码才能运算。
【反码】
反码:非负整数的反码==原码,负数的反码是在原码的基础上符号位不变,其他位取反。
例如:
5的反码是:00000101,
-5的反码是11111010;(八位二进制表示)。
【补码】
计算机系统中,数值一律是用补码来表示和存储及运算的。正整数的补码就是其二进制表示,与原码相同负整数的补码是其原码符号位外的所有位取反后加1
例如: 我们用8位二进制表示一个数
+9的原码为:00001001
+9的反码为:00001001
+9的补码为:00001001
正数的反码、补码都是和原码相同
负数的反码是将其原码除符号位外的各位求反
负数的补码是反码+1,即原码除符号位外的各位求反+1
例:在8位二进制下,计算9+(-5)
+9的补码为:00001001
-5的补码为:11111011
拓展: