单精度
单精度数,是指计算机表达实数近似值的一种方式。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