浮点数表示使用的方法类似于科学计数法
任何一个以二进制表示的浮点数都可以表示为 [(-1)^S] [2^E0] M ——— ①
然后内存中储存的就是 S(符号) E(指数) M(有效数芓) 的值
- 根据 E 的值,有三种情况
- E 全为 1, 如果此时 M 全为0, 那么表示正无穷或者负无穷,如果 M 不全为0,则表示 NaN
10进制浮点数转換成二进制浮点数
整数部分按照整数的转换方法,小数部分按照小数的转换方法
浮点数处理架构与指令集
用於 x86, gcc编译时,浮点数默认采用这个指令集
x87 FPU 特指与 x86处理器配套的浮点协处理器架构
浮点数操作使用 xmm 寄存器,不用 st 寄存器, 但并不是代表 x86-64 架構下st寄存器不存在
浮点数的任何操作都要经过浮点数寄存器
浮点数只会出现在浮点数寄存器和内存中,不会在通用寄存器上
-
- 有时候, 我们声明┅个浮点数并且赋值, 尽管其实局部变量,但是它会出现在 .rodata 节