一.机器数和码制

各种数据在计算机中表示的形式称为机器数,其特点是采用二进制计数制,数的符号用0、1表示,小数点隐含表示而不占位置。机器数对应的实际数值称为数的真值。 对于带符号数,机器数的最高位是表示正、负的符号位,其余位则表示数值。若约定小数点的位置在机器数的最低数值位之后,则是纯整数;若约定小数点的位置在机器数的最高数值位之前(符号位之后),则是纯小数。无符号数是指全部二进制位均代表数值,没有符号位。 为了便于运算,带符号的机器数可采用原码、反码和补码、移码等不同的编码方法。

二.原码

数值X的原码记为[X]原,如果机器字长为n(即采用n个二进制位表示数据),则最高位是符号位,0表示正号,1表示负号,其余的n-1位表示数值的绝对值。数值零的原码表示有两种形式:[+0]原=00000000,[-0]原=10000000。

原码、反码、补码基本概念_带符号

三.反码

        数值X的反码记作[X],如果机器字长为n,则最高位是符号位,0表示正号,1表示负号,其余的n-1位表示数值。正数的反码与原码相同,负数的反码则是其绝对值按位求反。数值0的反码表示有两种形式:[+0]=00000000,[-0]=11111111。

原码、反码、补码基本概念_反码_02

四.补码

数值X的补码记作[X]补,如果机器字长为n,则最高位为符号位,0表示正号,1表示负号,其余的n-l位表示数值。正数的补码与其原码和反码相同,负数的补码则等于其反码的末尾加1。在补码表示中,0有唯一的编码:[+0]补=00000000,[-0]补=00000000。

原码、反码、补码基本概念_反码_03

五.总结

整数在内存中存储的都是二进制的补码
1.正数的原码、反码、补码相同
2.负数:
原码:直接按照正负写出二进制序列
反码:原码的符号位不变,其他位按位取反得到
补码:反码+1