数的定点和浮点表示

定点表示:又称整数表示,小数点在数中的位置是固定不变的;

浮点表示:又称实数表示,小数点在数中的位置是浮动的。

对于任意一个二进制数N,可用N=S*2P表示,其中S为尾数,P为阶码,2为阶码的底,P、S都用二进制数表示,S表示N的全部有效数字,P指明小数点 的位置,当阶码为固定值时,数的这种表示法称为定点表示,这样的数称为定点数;当阶码为可变时,数的这种表示法称为浮点表示,这样的数称为浮点数。

通常定点数有两种表示法,均设P=0,小数点是隐含的,若数值部分为n位:

当S为纯整数时,此时定点数只能表示整数,所能表示的N范围是2n-1)≥N≥-(2n-1);当S为纯小数时,此时定点数只能表示小数,所能表示的N范围是1-2-n)≥N≥-(1-2-n)。

实际数值不一定都是纯整数或纯小数,运算前可选择比例因子,使所有原始数据化成纯小数或纯整数,运算后再用比例因子恢复成实际值。

Pentium处理器除无符号整数外,还有四种不同类型的整数,见表1-3  
           表1-3        Pentium处理器四种整数类型

整数类型
数值范围
精  度
格  式

16位整数
-32768~32767
二进制16位
16个二进位,补码表示

短整数
-231~231-1
二进制32位
32个二进位,补码表示

长整数
-263~263-1
二进制64位
64个二进位,补码表示

BCD整数
-1018+1~1018-1
二进制18位
80个二进位,最左边一个字节的最高位表示符号,其余7位无效:另外72位是18位BCD码,原码表示


表示浮点数时还常用一种称为增码的码制。浮点数的阶码表示指数大小,有正有负,为避开阶码的符号,对每个阶码都加上一个正的常数(称偏移常数),使能表示 的所有阶码都为正整数,变成“偏移”了的阶码,又称移码,又称增码。移码的值不小于0,这样阶码总为0,可以取消,浮点数小数点的实际位置由移码减去偏移 常数来决定。

一个实数可表示成一个纯小数与一个乘幂之积。如

1011.101=0.1011101×2100

-0.0010011=-0.10011×2-10

-110001101=-0.110001101×21001

一个任意实数,在计算机内部可以用指数(为整数)和尾数(为纯小数)来表示,用指数和尾数表示实数的方法称为浮点表示法。

表示浮点数时指数选用什么编码?尾数的格式和小数点位置如何确定?起初不同的计算机有不同的规定,产生了相互间数据格式的不兼容。为此,IEEE制定了有关标准,并被普遍采用。

浮点数的长度可以是32位、64位甚至更长,分阶码和尾数两部分。阶码位数越多,可表示的数的范围越大;尾数越多,所表示的数的精度越高。

Pentium处理器中浮点数格式完全符合IEEE标准,其形式如下:

      (-1)S2E(b0△b1b2b3……bp-1)

其中:(-1)S是符号位,S=0为0,表示正,S=1为-1,表示负;

       E是指数,为无符号整数的移码;

      (b0△b1b2b3……bp-1)是尾数, bi=0或1, △代表隐含的小数点,p是尾数的长度。

Pentium处理器可表示三种不同类型的浮点数,见表1-4。  
              表1-4 Pentium处理器三种类型浮点数格式

参数
单精度浮点数
双精度浮点数
扩充精度浮点数

浮点数长度(字长)
32
64
80

尾数长度p
23
52
64

符号位S位数
1
1
1

指数E长度
8
11
15

最大指数
+127
+1023
+16383

最小指数
-126
-1022
-16382

指数的偏移量
+127
+1023
+16383

表示的实数范围
10-38~1038
10-308~10308
   


浮点数在计算机中一般都表示成规格化形式,即尾数的最高位b0总为1,b0和小数点一样都是隐含存在,在机器中不明确表示出来。例如:  
182.375在Penuitm机器中表示为单精度浮点数为:01000011001101100110000000000000
因为182.375=10110110.011B==1.0110110011*2 的111次幂 ,指数111B=7加偏移良127,的134=10000110B
所以182.375单精度浮点数表示为:0(S)100001100(E)1101100110000000000000(是尾数)

实际问题是复杂和多样的,因而同一计算机里也提供多种类型的整数(定点数)和实数(浮点数),用户应根据需要选用,以求最佳效果。
展开阅读全文

没有更多推荐了,返回首页