浮点数表示方法是什么?
是已知的C/C++编译器都是按照IEEE(国际电子电器工程师协会)制定的IEEE浮点数表示法来进行运算的。这种结构是一种科学表示法,用符号(+或-)、指数和尾数来表示,底数被确定为2。所以在IEEE浮点数表示法里,一个浮点数为尾数乘以2的指数次方再加上符号。
扩展资料:
格式
(EfE1E2E3E4E5E6E7MfM1M2M3M4M5M6M7)
其中Ef到E7这部分叫做阶码,用移码表示,Ef是阶符,Mf到M7称作尾数,用补码表示,Mf为数符,小数点的位置在Mf后面对于浮点数的表示,字长是由硬件决定,如字长可以是32位,其中阶码8位,含一位阶符,则阶码的表示范围为-128到127,尾数为23位。
例如,原数为-1101.110101000100...0如果用上述32位表示,-1101.110101000100...0=-0.1101110101000100...0*2^4,4=0000100,其移码=2^7+0000100=10000100
Mf为1,M1后为1101110101000100...,不足23位后的空位置用0补够,则其浮点数表示为10000100,1.1101110101000100...0。
等你上了中学,就会学到 “科学记数法”。
任意数字 N,按照科学记数法即为:N = ± 绝对值 × 10^e。
式中的绝对值,是 “一位整数、多位小数”。
式中的 e,是以 10 为底的指数。
如:N =-98765.4321,就可写成:N =-9.87654321 × 10^4。
把科学记数法,加一些改动和限制,再存到计算机中,就成了 “浮点数”。
一个浮点数,由三部分组成:S、E 和 M,它们都是二进制数。
在计算机中使用浮点数格式来保存数字,是有误差的。
例如,32 位的浮点数,只能准确表示 7 位十进制数。
在一些要求严格的场合,就不可使用浮点数。
比如你把-98765.4321 万元,存到计算机中,之后再显示出来,
就只剩下-9.876543 × 10^4 万元了。