首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >十进制分数到浮点二进制表示的转换

十进制分数到浮点二进制表示的转换
EN

Stack Overflow用户
提问于 2018-03-26 12:00:17
回答 1查看 225关注 0票数 0

假设我们有一个指数范围为-3,3,精度为4位的归一化浮点数。下面是4个十进制数和相应的二进制表示。如何将这些十进制数转换为二进制数?我知道如何从二进制到十进制,反之亦然。

代码语言:javascript
运行
复制
0.11 (decimal) = 1.000 * 2^-3 (binary)
3.1416 (decimal) = 1.101 * 2^1 (binary)
2.718 (decimal) = 1.011 * 2^1 (binary)
7 (decimal) = 1.110 * 2^2 (binary)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-26 12:27:18

从尾数和指数的定义出发。指数是最简单的部分。尾数只不过是两个负幂之和:1+5+1/4+⅛…,其中一些被乘以1,有些-到零。

为了确定指数的值,找出当被除以( [0,1)中的数乘以)到范围[1,2]的值的最大幂。

对于0.11,为-4 (如您所述为非-3 ),为0.11 * 2⁴= 1.76。对于3.1416,它是+1,因为3.1416/2= 1.5708

然后,您将有一个范围内的数字m [1,2]来转换为二进制分数。从r = “1”开始。因此,然后从m中减去1并乘以2。如果结果不止一个,则将"1“写到r的末尾,从m中减去1,否则将"0”写到r的末尾。继续乘以2,并可选择地从m中减去1,同时将"0“和"1”写入r,这取决于您是否需要减去1。当你有足够的数字尾数时停止。

我想你可以自己搞清楚如何做自己想要的舍入模式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49490960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档