数的机器码表示有原码,反码,补码,移码。三者的关系如下:
原码:
原码就是数值二进制本身,第一位表示符号位,正数符号位为0,负数的符号位为1,例:
当x=100(10) , x 的原码为:[x]原 = 0 1100100,
当x=-100(10)时,x 的原码为:[x]原=1 1100100,
反码:
正数的反码=原码,负数的反码等于除符号位的原码取反,例:
当x=100(10), x的反码为:[x]反 = [x]原 = 0 1100100,
当x=-100(10), x的反码为:[x]反 = 1 0011011,
补码:
正数的补码=反码=原码,负数的补码等于反码加1,例:
当x=100(10), x的补码为:[x]反 = [x]原 = [x]补 = 0 1100100,
当x=-100(10), x的补码为:[x]补 = 1 0011101,
移码:
正数与负数移码的变换是一样的,即其补码的符号位取反,例:
当x=100(10), x的移码为:[x]移 = 1 1100100,
当x=-100(10), x的移码为:[x]移 = 0 0011101,