1、定点表示法的特点定点数表示数的范围受字长限制,表示数的范围有限;定点表示的精度有限;机器中,常用定点数表示纯整数和纯小数,表示即有整数又有小数时比较麻烦。,浮点数表示,浮点数的表示格式,对任意一个二进制数N,总可以写成: N= 2EM ,式中: E为数N的阶码,M为数N的尾数;可见浮点数是由阶码和尾数两个部分组成的。浮点数在计算机中的表示格式如下:,或,Ms 代表浮点数的符号,n 其位数反映浮点数的精度,k 其位数反映浮点数的表示范围,Es 和 k 共同表示小数点的实际位置,浮点数的表示格式,原码规格化后的尾数 正数为 0.1的形式 负数为 1.1的形式补码规格化后的尾数 正数为 0.1的形式
2、 负数为 1.0的形式,规格化,同一个浮点数表示不唯一,如:1.11 20, 0.111 21,例将下列十进制数表示成浮点规格化数,阶码4位(含符号),分别用补码和移码表示;尾数6位(含符号),用补码表示(要求规格化)。 19/512 19/512 解: 19/512=1001129=0.1001124 阶码用补码表示为: 1100 010011 阶码用移码表示为: 0100 010011 19/512=1001129=0.1001124 阶码用补码表示为: 1100 101101 阶码用移码表示为: 0100 101101,“Father” of the IEEE 754 standard,
3、现在所有计算机都采用IEEE754来表示浮点数,1970年代后期, IEEE成立委员会着手制定浮点数标准,1985年完成浮点数标准IEEE754的制定,直到80年代初,各个机器内部的浮点数表示格式还没有统一 因而相互不兼容,机器之间传送数据时,带来麻烦,单精度格式: 32位, 符号位1位,阶码 E=8位, 尾数M=23位双精度格式: 64位,符号位1位, E=11位, M=52位,IEEE754标准浮点数表示,阶码用移码、尾数用原码,因为规格化原码尾数的最高为恒为1,为增加一位的精度,该1在尾数中不表示出来,计算时在尾数前面自动加1.,IEEE754标准浮点数表示,1,8,23,S符号位,E,
4、1.M(原码规格化),阶码,尾数,32位单精度形式,单精度数所表示的数值为 (-1)s 1.M 2e127。双精度数所表示的数值为 (-1)s 1.M 2e1023。其中:s=0表示正数,s=1表示负数;,即,如果要表示一个数,需要把该数写成:(-1)s 1.M 2(x)真值 而规格化浮点数形式是: (-1)s 0.1M 2(128+x)移码 = (-1)s 1.M 2(127+x)移码,相当于此时移码的计算不是加128,而是加127,几个特殊数值:当E的二进制位全为1时为特殊数值:此时,若M的二进制位全为0,则n表示无穷大。若S为1则为负无穷大,若S为0则为正无穷大; 若M的二进制位不全为0
5、时,表示NaN(Not a Number),表示这不是一个合法实数。E为全0时:M全为0时,表示机器0;M不全为0时,表示非规格化的数。单精度数e的取值为1254(8位表示),M为23位,共32位;双精度数e的取值为12046(11位表示),M为52位,共64位。,IEEE754标准浮点数表示,例 写出下列十进制数据的IEEE754编码 0.15625 5 解: 0.15625转换成二进制值为0.00101,在IEEE754中规格化表示为1.0123, e1273124,IEEE754编码为:0 01111100 010000000000000000000005转换成二进制值为:101在IEE
6、E754中规格化表示为1.0122, e1272129,IEEE754编码为:1 10000001 01000000000000000000000,IEEE754标准浮点数表示,例 将十进制数9和5/32转换为IEEE754标准的单精度数, 并用8位十六进制表示解答(1) 9= (-1)01001=(-1)023 1.001 =(-1)02130-127 1.001 二进制代码为:0 10000010 00100000000000000000000 即:41100000H解答(2) 5/32= (-1)001012-5 =(-1)02-5221.01 =(-1)02124-127 1.01 二进制代码为:0 01111100 01000000000000000000000 即:3E200000H,IEEE754标准浮点数表示,