原码
5 => 0b101, 1 => 0b1, -1 =>-0b1、bin(-1)
原码取反
正数将原码按位取反(包括最前面的符号位),负数符号位不变,其他按位取反
反码
正数的反码是本身,负数符号位不变,其他按位取反
补码
正数的补码是原码,负数的补码是原码取反加1
负数
负数在计算机中用补码表示
补码的补码是原码
问题:12的取反为什么是-13??
12 原码 0000 1100
取反 1111 0011,最高位为1,计算机认为存储的负数的补码形式,那这个补码的原码是多少呢?套用公式:补码的补码是原码。1111 0011的补码是1000 1100+1 => 1000 1101,十进制为 -13