数据表示
各种数据在计算机中表示的形式称为机器数,其特点是数的符号用0和1表示。
机器数对应的实际数值称为该数的真值。机器数又分为无符号数和带符号数两种。
无符号数表示正数,在机器数中没有符号位。对于带符号数,机器数的最高位是表示正、负的符号位,其余二进制位表示数值。带符号的机器数可以采用原码、反码、补码和移码等编码方法。机器数的这些编码方法称为码制。
1. 原码、反码、补码和移码
(1)原码
在原码表示中,机器数的最高位是符号位,0代表正号,1代表负号,余下各位是熟的绝对值。零有两个编码,即 [+0]原=00000000,[-0]原=10000000。原码表示方法的优点在于数的真值和它的原码表示之间的对应关系简单,相互转换容易,用原码实现乘除运算的规则简单;缺点是用原码实现加减运算很不方便。
(2)反码
在反码表示中,机器数的最高位是符号位,0代表正号,1代表负号。当符号位为0时,其余几位即为此数的二进制值;但当符号位为1时,则要把其余几位按位取反才是它的二进制值。零有两个编码,即 [+0]反=00000000,[-0]反=11111111。
(3)补码
在补码表示中,机器数的最高位是符号位,0代表正号,1代表负号。当符号位为0(即正数)时,其余几位即为此数的二进制值;但当符号位为1(即负数)时,其余几位不是此数的二进制值,需把它们按位取反,且最低位加1,才是它的二进制值。零有唯一的编码,即 [+0]补=[-0]补=00000000。补码表示的两个数在进行加法运算时,只要结果不超出机器所能表示的数值范围,可以把符号位与数值位同等处理,运算后的结果按2取模后,得到的新结果就是本次加法运算的结果。
(4)移码
移码表示法是在数X上增加一个偏移量来定义的,常用于表示浮点数中的阶码。如果机器字长为n,规定偏移量为2(n-1),则移码定义为:若X是纯整数,则 [X]移=2(n-1)+X(-2n-1≤X<2n-1);若X是纯小数,则 [X]补=1+X(-1≤X<1)。
2. 定点数和浮点数
(1)定点数
所谓定点数,就是小数点的位置固定不变的数。小数点的位置通常有两种约定方式:
- 定点整数(纯整数,小数点在最低有效数值位之后)
- 定点小数(纯小数,小数点在最高有效数值位之前)
(2)浮点数
浮点数是小数点位置不固定的数,它能表示更大范围的数。浮点数的表示格式如下表1.1所示。在浮点表示法中,阶码通常为带符号的纯整数,尾数为带符号的纯小数。
表1.1 浮点数的表示形式
阶符 | 码阶 | 数符 | 尾数 |
---|
浮点数通常表示成:N = M·RE
式中,M称为尾数;R称为基数;E称为阶码。因此,若表示一个浮点数,要给出尾数M,它决定了浮点数的表示精度;同时要给出阶码E,它指出了小数点在数据中的位置,决定了浮点数的表示范围(若表示范围超出了计算机的表达范围,就称为溢出)。
(3)工业标准IEEE 754
IEEE 754是由IEEE制定的有关浮点数的工业标准,被广泛采用。该标准的表示形式为
(-1)S2E(b0b1b2b3…b(p-1))
式中,0、1、2、3、(p-1)均为b的下标;(-1)S为该浮点数的数符,当S为0时表示正数,S为1时表示负数;E为指数(阶码),用移码表示;(b0b1b2b3…b(p-1))为尾数,其长度为p位,用原码表示。
文章来源:
全国计算机技术与软件专业技术资格(水平)考试参考用书(清华大学出版社)