1、浮点数表示IEEE 754,浮点数,是指小数点在数据中的位置可以左右移动的数据。它通常被表示成: N = M* RE 这里的M(Mantissa)被称为浮点数的尾数,R(Radix)被称为阶码的基数,E(Exponent)被称为阶的阶码。计算机中一般规定R为2、8或16、是一个确定的常数,不需要在浮点数中明确表示出来。因此,要表示浮点数,一是要给出尾数M的值,通常用定点小数形式表示,它决定了浮点数的表示精度,即可以给出的有效数字的位数。二是要给出阶码,通常用整数形式表示,它指出的是小数点在数据中的位置,决定了浮点数的表示范围。浮点数也要有符号位。在计算机中,浮点数通常被表示成如下格式: Ms是
2、尾数的符号位,即浮点数的符号位,安排在最高一位; E 是阶码,紧跟在符号位之后,占用m位,含阶码的一位符号; M 是尾数,在低位部分,占用n位,浮点数表示,为了提高数据的表示精度,也为了便于浮点数之间的运算与比较,规定计算机内浮点数的尾数部分用纯小数形式给出,而且当尾数的值不为0时,其绝对值应大于或等于0.5,这被称为浮点数的规格化表示。 当一个浮点数的尾数为0,不论其阶码为何值,该浮点数的值都为0。当阶码的值为它能表示的最小一个值或更小的值时,不管其尾数为何值,计算机都把该浮点数看成零值,通常称其为机器零,此时该浮点数的所有各位(包括阶码位和尾数位)都清为0值。 阶码采用移码表示,偏移量为2
3、m-1-1,实际为E-偏移量。 尾数全部是小数点后面的数,但尾数中省略了一个1,当尾数全为0时,也是1.00000000,浮点数表示,若E=0,且M=0,则N为0。 若E=0,且M0,则N=(-1) S2 (-126) (0.M)。为非规格化数。 若1E254,则N=(-1) S2 (E-127)(1.M)。为规格化数。 若E=255,且M0,则N=NaN(非数值)。 若E=255,且M=0,则N=(-1) S(无穷大)。,浮点数表示,数值大小:(-1) S*(1+x)*2 (E- 2m-1+1) 浮点数均为有符号浮点数,没有无符号浮点数。,浮点数表示,浮点数类型 Ms E M 总长度 flo
4、at 1 8 23 32位(4字节) double 1 11 52 64位(8字节) long double 1 15 64 80位(10字节)浮点数类型 阶码范围 偏移量 E实际范围 float 1-254 127 -126127 double 1-2046 1023 -10221023 long double 1-32766 16383 -1638216383,浮点数表示,1、浮点数类型 float 值域(绝对值) 1.175494351E383.402823466E+382-126 2127*2 有效位 6-7位2、浮点数类型 double 值域(绝对值) 2.2250738585072014E3081.7976931348623158E+308 2-1022 21023*2 有效位 15-16位3、浮点数类型 long double 值域(绝对值) 3.3621031431120935062E-4932 1.1897314953572317650E+4932 有效位 19位2-16382 216383*2,