双精度浮点数输出格式(双精度浮点数和单精度浮点数的区别)

一个十进制的数字,转换成二进制格式,动手计算下数字是怎样以二进制方式存储的。?

首先要把二进制表贴出来,以便下面转换的时候查看:

1

1

1

1

1

1

1

1

1

1

1

10

9

8

7

6

5

4

3

2

1

0

2^10

2^9

2^8

2^7

2^6

2^5

2^4

2^3

2^2

2^1

2^0

1024

512

256

128

64

32

16

8

4

2

1?

我们说一下「double float」双精度浮点数,基于 IEEE 754:?

双精度浮点数为 64 位,单精度为 32 位,双精度比单精度,肯定表示的更加精准嘛,就是数字的位数能表示的更多。
双精度浮点数存储的格式由三部分构成:
  • 符号位(Sign):1位
  • 指数位(Exponent):11位
  • 精度位(Fraction):52位?
基本结构清楚了,来一一说明下。这 64 个位,只能输入0或1。
符号位:为0 ,说明当前值是正数;符号位为1,说明当前值是负数;
指数位:为了让指数位为正数,所以,指数位设置了一个基准值(也叫偏移量),这个基准值为 01111111111 一个 0 后面跟10个1(值为1023)。
精度位:精度位有一个隐藏位的 1 ,就是计算完的二进制数据,第一个1是不需要显示出来的,默认存在。

数字:300

我们拿数字 300 举例:
300/2 = 150 余 0;

150/2 = 75 余 0;

75/2 = 37 余 1;?

37/2 = 18 余 1;

18/2 = 9 余 0;

9/2 = 4 余 1;

4/2 = 2 余 0;

2/2 = 1 余 0;

1/2 = 0 余 1;
余数反推回去 100101100 补全以后就是 00100101100,这样的操作可以在「纸」上操作。如果在电脑上,可以使用 (300).toString(2)。?
最终数字 300 转换成二进制为 100101100,计算精度位的时候,第一个 1 去掉,对应的就是精度的存储值就是 00101100;
计算指数位的时候需要先写成 1.00101100E8 ,小数点向前移动了 8 位,指数为 8 ;
看最上面的对应表,指数为 8 的话,对应的为 00000001000,这个二进制数据需要加上「基准值」,最后结果为 1023 + 8 = 1031;
而 1031 对应的二进制码为 10000000111,所以哈,指数位存的码点值为 10000000111。

数字 300 存储的码点

数字:10.24?

另一个数字 10.24 举例:

10/2 = 5 余 0;

5/2 = 2 余 1;

2/2 = 1 余 0;

1/2 = 0 余 1;

余数反推 1010,补全以后就是 00000001010;
小数部分计算:

.24 * 2 = .48 取 0;

.48 * 2 = .96 取 0;

.96 * 2 = 1.92 取 1;

.92 * 2 = 1.84 取 1;

.84 * 2 = 1.68 取 1;

.68 * 2 = 1.36 取 1;

.36 * 2 = .72   取 0;

.72 * 2 = 1.44 取 1;

.44 * 2 =  .88  取 0;

……
小数部分在尾数的表示为 001111010….
那这个 10.24 在二进制表示应该是 1010.001111010…. 这样的数值。
精度位:010001111010(把上面的 1 去掉)
指数位:先转成 1.010E3,然后指数为 3 就是 00000000011 + 01111111111 = 100000000010,也可以计算为 3 + 1023 = 1026

数字 10.24 存储的码点

在线转换页面:

http://www.binaryconvert.com/result_double.html?decimal=053?

参考文档:

https://blog.csdn.net/abcdu1/article/details/75095781

https://blog.csdn.net/zhengyanan815/article/details/78550073

https://www.boatsky.com/blog/26


图片授权基于 www.pixabay.com 相关协议

推荐阅读

如何用 vue-cli 调试源码?
如何调试 Vue 源码?

Vue 在挂载数据前都经历了什么?


原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34622.html

(0)
小道研究's avatar小道研究
上一篇 2024年4月16日 下午12:20
下一篇 2024年4月16日 下午12:22

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注