• 1.摘要
  • 2.存储格式
  • 3.浮点数
  • 3.1.表示范围
  • 3.2.精度
  • 3.3.误差
  • 4.标准格式
  • 5.存储变形
  • 6.更多规范
  • 7.无穷大
  • 8.双精度
  • 8.1.简介
  • 8.2.解释方法
  • 8.3.深入解释
  • 9.评价

单精度

单精度数,是指计算机表达实数近似值的一种方式。VB中,Single(单精度浮点型)变量存储为IEEE32位(4个字节)浮点数值的形式,它的范围在负数的时候是从-3.402823E38到-1.401298E-45,而在正数的时候是从1.401298E-45到3.402823E38。如果涉及浮点数,值可能不往返。值的往返是指,某个运算将原始浮点数转换为另一种格式,而反向运算又将转换后的格式转换回浮点数,且最终浮点数与原始浮点数相等。由于一个或多个最低有效位可能在转换中丢失或更改,往返可能会失败。

存储格式

符号位S(sign) - 1bit

0代表正号,1代表负号。(+0、-0视为相同?(欢迎补充资料)) +0是0000 0000

-0是1111 1111 用-128代替 它没有反码和补码。

指数位E(exponent) - 8bit

E的取值范围为0-255(无符号整数),双精度为11位,扩张型大于等于15位,实际数值e=E-127。

有时E也称为“移码”,或称为“阶码”

尾数位M(mantissa) - 23bit

M也叫有效数字位(significant)、系数位(coefficient),甚至被称作“小数”。

在一般情况下,m=(1.M)2,使得实际起作用范围为1≤尾数<2。

为了对溢出进行处理,以及扩展对接近0的极小数值的处理能力,IEEE 754对M做了一些额外规定,参见后文介绍。

浮点数

对于内部存储数据(00111111)2:

符号位

(最左侧)S=0。这表示是个正数

指数

(左侧第2-9位)E=(01111110)2=(126)10,所以e=E-127=-1。

尾数

(最后的23位)M=(11001100110)2,m=(1.M)2=(1.7999999523162841796875)10