ieee754双精度浮点数转换_双精度浮点数

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

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

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。

290e4fb00518580aac43a70c7ee94ef4.png

数字 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

281dc747227b814458a6bab9653a61a3.png

数字 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 在挂载数据前都经历了什么?


cf85b3815e0d05c7849189584a7e18bb.png

### 回答1: IEEE 754双精度浮点数在线转换器是一个用于将双精度浮点数表示转换二进制、十进制、十六进制等不同进制形式的工具。IEEE 754是一种国际标准,用于规定浮点的表示方式,广泛应用于计算机系统中。 使用该在线转换器,我们可以输入一个双精度浮点数,然后选择要将其转换为的进制类型。比如,如果我们选择二进制,该转换器将把双精度浮点数的每个位转换为一个二进制字,并将其合并为一个整体的二进制值。如果我们选择十进制,该转换器转换为指形式,其中有效位和指分别用十进制表示。如果我们选择十六进制,该转换器将将转换为十六进制表示形式。 在线转换器的优点是方便快捷,并且适用于各种不同的浮点转换需求。它可以帮助我们更好地理解和分析浮点的表示方式,并方便地进行进制转换和计算。它还可以用于教育和学术研究领域,帮助学生和研究人员更好地学习和理解浮点表示和运算。 当然,值得注意的是,浮点在计算中存在精度损失的问题,因为浮点的表示方式是有限的。因此,在进行浮点转换和计算时,我们需要注意精度问题,并避免由于精度误差导致的错误结果。此外,不同计算机系统和编程语言可能会有不同的浮点表示方式和误差范围,因此,在进行转换和计算时,我们还需要注意不同环境下的差异。 ### 回答2: IEEE 754双精度浮点数在线转换器是一种在线工具,用于将浮点转换IEEE 754精度二进制表示形式,或者将IEEE 754精度二进制表示形式转换为浮点IEEE 754是一种标准,用于表示和计算浮点双精度浮点数在计算机科学和工程领域中经常使用,因为它们提供了更高的精度和表示范围。 使用IEEE 754双精度浮点数在线转换器,用户可以输入一个浮点IEEE 754精度二进制表示形式,然后得到转换结果。对于浮点输入,转换器将其转换IEEE 754精度二进制表示形式,并显示出来。对于二进制输入,转换器将其转换为浮点,并显示结果。 这个在线转换器对于开发人员、计算机科学家和工程师来说非常有用,因为它可以方便地进行浮点的表示和计算。例如,在科学计算、图形处理和人工智能领域,双精度浮点数被广泛应用于高精度计算和据表示。转换器可以帮助用户验证浮点的表示是否正确,或者将浮点转换为计算机可以理解的形式。 总之,IEEE 754双精度浮点数在线转换器是一个实用工具,可以方便地进行浮点二进制表示之间的转换,帮助用户在计算和据处理过程中更好地理解和应用双精度浮点数。 ### 回答3: IEEE 754是一种为浮点表示和运算而制定的浮点标准。它定义了如何使用二进制表示浮点,并包含了一系列规则来进行浮点计算。 IEEE 754双精度浮点数是一种用于表示双精度浮点数二进制格式。它由1位符号位、11位指位和52位尾位组成。符号位用于表示的正负,指位用于表示的阶码,尾位用于表示的有效字。 双精度浮点数在线转换器是一种工具,用于将用户输入的十进制转换IEEE 754双精度浮点数二进制表示形式,或将输入的二进制表示形式转换为十进制的形式。 使用双精度浮点数在线转换器只需按照以下步骤进行操作: 1. 打开双精度浮点数在线转换器的网页或应用程序。 2. 如果要将十进制转换二进制表示形式,输入待转换的十进制。 3. 点击转换按钮或选项,将十进制转换IEEE 754双精度浮点数二进制表示形式。 4. 如果要将二进制表示形式转换为十进制,输入待转换二进制表示形式。 5. 点击转换按钮或选项,将二进制表示形式转换为十进制的形式。 6. 查看转换结果,可以获得十进制到浮点转换结果,或浮点到十进制转换结果。 双精度浮点数在线转换器的作用是帮助用户在不熟悉IEEE 754双精度浮点数表示方法的情况下,快速准确地进行浮点转换。这个工具在计算机科学、工程领域以及其他需要进行浮点计算的领域中得到广泛应用。通过使用双精度浮点数在线转换器,用户可以更方便地进行双精度浮点数转换和计算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值