数据的表示:
- 定点表示法
- 浮点表示法
任何一个二进制数N都可以表示为:N=(2^E)·S (其中E是一个二进制整数,称为数N的阶码,2为阶码的基数,S是二进制小数,称为数N的尾数。E和S可正可负。尾数S表示数N的全部有效数据,阶码E指明该数的小数点位置,表示数据的大小范围。)
定点数表示法
- 阶码E保持不变
- 若E=0,小数点固定在最高位之前,则该数是一个纯小数或定点小数。例如 N=(2^0)·0.110101001=0.110101001
- 若E=n (n为尾数的位数),则把小数点定在尾数最末位之后,表示一个纯整数(定点整数)。例如 N=(2^7)×0.1011010=01011010
定点表示:约定机器中所有数据的小数点位置是固定不变的。通常将数据表示成纯小数或纯整数。
定点数x=x0x1x2…xn 在定点机中表示如下(x0表示符号位,0代表正号,1代表负号)
浮点数的表示
浮点数的格式:阶码位数m与尾数位数n之间有如下关系:
(2^m)-1≥n
即表示阶码的值应保证实际的小数点可以在整个尾数的位格中移动。
规格化浮点数
所谓浮点数的规格化,就是通过移动尾数,使尾数S的最高位数字为1。即S满足1/2≤|S|<1时,这个浮点数就是规格化的数,否则就不是。在字长一定的情况下,规格化的浮点数精度最高。
定点数表示法和浮点数表示法的比较
表示的数据范围不同:
定点表示法,8位小数,能表示的数据范围:
0.0000001~0.1111111 (2^-7)~1-(2^-7)
浮点表示法,2位阶码,1位阶符,4位尾数,1位尾符,能表示的范围:
0.0001×(2^-11) ~ 0.1111×(2^11)
溢出情况不同:
定点表示法(小数) 带符号n+1位数时: 小于2-n时:当0; 大于1-2-n时:溢出,停机。
浮点表示法: 规格化后,从阶码上分析溢出: 阶码很小时,下溢:当0;阶码超出最大值时,上溢:停机。
运算规则的复杂性不同:
定点数:较简单;
浮点数:较复杂。
精度不同:
规格化浮点数的精度远远大于定点数。