数字机内存储
原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码(two's complement)——在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值位统一处理;同时,加法和减法也可以统一处理。补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
【例1】+9的原码是 00001001。(八位二进制)
反码是00001001。
补码是00001001。
【例2】-9的原码是10001001。(八位二进制)
反码是11110110。
补码是11110111。
int main(int argc, char *argv[]) { cout<<(30&(-30));//2 //30的补码 0001 1110 //-30补码 1110 0010 //按位与 0000 0010=2(dec) return 0; }