数据表示
各种数据在计算机中表示的形式称为机器数。其特点是数的符号用0、1表示。机器数对应的实际数值称为该数的真值。机器数又分为无符号和带符号数两种。无符号表示证书,在机器数中没有符号位。对于带符号数,机器数的最高为表示正、负符号位,其余二进制位表示数值。带符号的机器数可采用原码、反码、补码、移码等编码方法。机器数的这些编码方法称为码制。
学习以下内容时,先理解清楚((~1)|(1))+1=0,即数值溢出后从零开始
原码、反码、补码和移码
原码
在原码表示中,机器数的最高位是符号位,0代表正号,1代表负号,其余各位是数的绝对值。零有两个编码[+0]=00000000,[-0]=10000000.原码表示法的优点在于数的真值和它的原码之间的对应关系简单,相互转换容易,用原码实现乘除运算的规则简单。缺点是用原码实现加减运算很不方便。
反码
在反码表示中,机器数的最高一位是符号位,0代表正号,1代表负号。当符号位为0是,其余几位即为次数的二进制;但若符号位为1(即负数)时,其余几位不是次数的二进制数值,需把它们按位取反,且最低位加1,才是它的二进制。零有两个反码即[+0]反=00000000=[-0]反=11111111.
补码
在补码表示中,机器数的最高一位是符号位,0表示正号,1代表负号。当符号位为0时,其余几位即为此数的二进制;但若符号位为1时,其余几位不是此数的二进制数,需把它们按位取反,且最低位加1,才是他们的二进制。零有唯一的编码0=00000000.补码表示的两个数在进行假发运算时,只要结果不超出机器所能表示的数值范围,可以吧符号位与数值为等同处理,运算结果按2取模后,得到的新结果就是本次加法运算的结果。
移码
移码表示法是在数X上增加一个偏移量来定义的,常用语表示浮点数的阶码。