数据与文字表示方法
1. 数据格式
- 定点数:如果表示纯整数,则最高位是符号位,其余位依次是量值(尾数)。如果表示纯整数,则最高位是符号位,其余位依次是量值(尾数),小数点位于最高位和次高位之间。
- 浮点数:采用指数表示法,其中尾数部分的绝对值小于1,阶码用整数表示,体现了浮点数的精度
- 十进制数串:字符串形式(每个数位占一个字节)或压缩的十进制数串形式(每个数位占半个字节,C表示正号,D表示负号,当剩余半个字节时,在最高位前补一个0)
2. 数的机器码表示
- 原码:正数在最高位前加一个0,负数在最高位前加一个1,有+0和-0之分
- 反码:正数的反码为其原码,负数的反码为符号位为1,其他位取反
- 补码:正数的补码为其原码,负数的反码为符号位为1,其他位为反码除符号位的其它位在最后一位加1
- 移码:移码通常用于表示浮点数的阶码,移码的定义是 e 移 = 2 k + e e_{移}=2^k+e e移=2k+e,其中k是阶码数值部分的位数,e是真值。移码在对两个指数大小的比较和对阶操作比较方便,因为阶码域大者其指数值也大
- 浮点数的机器表示(IEEE754标准):对于32位浮点数,最高位是符号位(S),中间8位是阶码(E)(阶符采用隐含方式,即采用移码方法来表示正负数),最后23位是尾数(M)。IEEE754标准中,一个规格话的32位浮点数x的真值表示为 x = ( − 1 ) s × ( 1. M ) × 2 E − 127 x=(-1)^s\times (1.M)\times 2^{E-127} x=(−1)s×(1.M)×2E−127对于64位浮点数,最高位是符号位,中间11位是阶码(E)(阶符采用隐含方式,即采用移码方法来表示正负数),最后52位是尾数(M)。IEEE754标准中,一个规格话的32位浮点数x的真值表示为 x = ( − 1 ) s × ( 1. M ) × 2 E − 1023 x=(-1)^s\times (1.M)\times 2^{E-1023} x=(−1)s×(1.M)×2E−1023当E=255且M<>0时,x表示无意义数;当E=255且M=0时 x = ( − 1 ) S ∞ x=(-1)^S\infty x=(−1)S∞当E=0且M=0时 x = ( − 1 ) S 0 x=(-1)^S 0 x=(−1)S0当0<E<255时, x = ( − 1 ) s × ( 1. M ) × 2 E − 127 x=(-1)^s\times (1.M)\times 2^{E-127} x=(−1)s×(1.M)×2E−127;当E=0且M<>0时$ x = ( − 1 ) s × ( 0. M ) × 2 − 126 x=(-1)^s\times (0.M)\times 2^{-126} x=(−1)s×(0.M)×2−126
3. 字符与字符串的表示方法
- ASCII码用8个2进制表示,最高一位固定为0
- 字符串通常占用主存中连续的多字节。当主存字由2或4个字节组成时,即可按从低位字节向高位字节的顺序存放字符串内容,也可按从高位字节向低位字节的顺序存放字符串内容
- 校验码:奇校验位定义为 C ‾ = x 0 ⨁ x 1 ⨁ . . . ⨁ x n − 1 \overline{C} =x_0 \bigoplus x_1\bigoplus ...\bigoplus x_{n-1} C=x0⨁x1⨁...⨁xn−1 ⨁ \bigoplus ⨁表示按位加,只有当X中包含奇数个1时,才能使 C ‾ = 1 \overline{C}=1 C=1,即 C = 0 C=0 C=0;偶校验位定义为 C = x 0 ⨁ x 1 ⨁ . . . ⨁ x n − 1 {C} =x_0 \bigoplus x_1\bigoplus ...\bigoplus x_{n-1} C=x0⨁x1⨁...⨁xn−1只有当X中包含偶数个1时,才能使 C = 0 C=0 C=0