浮点型在内存中的存储
表示形式
根据国际标准IEEE754(电气和电子工程协会),任意一个二进制浮点数X可以表示成下面的形式:
(-1)^S*M*2^E
(-1)^s表示符号位,当s=0,X为正数;当s=1,X为负数。
M表示有效数字,大于等于1,小于2。
2^E表示指数位。
实例
例如:十进制(12.25)转换为二级制为(1100.01);
X的格式是:(-1)^0* 1.10001*2^3; S= 0,M= 1.10001;E=3;
例如:十进制(-0.25)转换为二级制为(-0.01);
x的格式是:(-1)^1 *1*2个-2;S=1,M= 1; E = -2;
存储示意图
IEEE754规定:对于32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M
实例讲解
以十进制(12.25)转换为二级制为(1100.01);为例:
s里面存储的是符号 0,
E里面存储的是127与E的和,十进制(12.25)转换为二级制为(1100.01);E=3;就是127与3的和,即1000 0010
0111 1111
0000 0011
-------------
1000 0010
M里面存储的是M= 1.10001;但是M大于等于1,小于2。所以,不存储最前面的1,存储10001,后面补0
现在总的来看存储的是
0 10000010 10001000000000000…
再归一化
0100 0001 0100 0100
转化为10进制为
4 1 4 4
vs中测试
该存放为小端存放