floats

浮点数

基础知识

浮点通过移动二进制小数点来表示尽可能大的取值范围

数字公式

$$
(-1)^S M 2^E
$$

符号位{S} 表示正负

小数{M} 一般是一个1~2之间的小数值

指数位{E} 指的是乘2的E次方

IEEE浮点数标准

single 单精度

1位符号位,8位指数位,23位小数位

Double 双精度

1位符号位,11位指数位,52位小数位

小数位的特殊表示

由于小数位永远是1.010101这样的模式

因此前面的1不放入存储,只记录后面的01010101这种

同时,在计算时,会刻意维持小数位为1.010111这样的模式,就是说维持小数位在1~2之间

零表示法

$$
(-1)^S M 2^E
$$

此时E为1-Bias,之前为0-Bias

由于之前无法表示0,将M设置为0.110101010这种模式,此时可以表示0

当E全0,小数位全0的时候

表示0

这会导致正负0的出现

当E为0,小数位不为0的时候,可以表示一些很接近0的东西

如果E为111111….1 ,frac 不为0,

则代表一个极大值,不代表数字

Author

YSH

Posted on

2022-09-18

Updated on

2022-10-12

Licensed under