原码、反码和补码
计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
1.原码
原码,用8位二进制表示一个数,数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1。例如+7的原码为00000111,-7的原码就是10000111。
2.反码
正数的反码与其原码相同;负数的反码是对正数逐位取反,符号位保持为1。
例如-5的原码为10000101,-5的反码为11111010。
3.补码
1.正整数的补码与原码相同 。
2.一个负整数的原码与其补码相加,和为模。求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。-1的原码为10000001,其补码为11111111。
3.在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。