浮点型如何存储
我们知道在计算机中存储的都是二进制,整型的二进制不必多说,十进制和二进制的相互转换
那我们的浮点型,也就是小数在计算机中如何存储的呢?
小数转换二进制的换算方法
假设这样一个数:12.05
12.05
的整数部分为12, 转成二进制为1100
.
小数部分是0.05
这该如何计算?
步骤:
- 将
0.05
不断乘于2
- 结果小于
1
,则继续乘。 大于1
,减1
继续乘,直到结果等于1
结束。
演示:
java
0.05 * 2 = 0.1; // 小于1继续
0.1 * 2 = 0.2;
0.2 * 2 = 0.4;
0.4 * 2 = 0.8;
0.8 * 2 = 1.6; // 大于1,减1继续
0.6 * 2 = 1.2;
0.2 * 2 = 0.4; // 此时发现和第三行相同了,说明再怎么乘下去也是一个循环
我们把结果的整数部分拼接,得到00001100
,第三行到第六行会一直循环0011
得:00001100110011001100110011001100110011...
省去前面的0
11001100110011001100110011...
组合在一起为:1100.1100110011001100110011。。。
科学计数法:1.100110011001100110011.。。 * 2³
(小数点左移三位)