使用 IEEE 754 标准(32 位)将数字转换为二进制

Posted

技术标签:

【中文标题】使用 IEEE 754 标准(32 位)将数字转换为二进制【英文标题】:Convert the Number to binary using IEEE 754 standard (32-bits) 【发布时间】:2015-04-28 17:32:16 【问题描述】:

我正在尝试使用 IEEE 754 标准 32 位将数字 -11.25 转换为二进制。

这是我目前得到的:

-11.25 = 1011.0100

1.0110100 * 2^3 3 + 127 = 130

= 1.0110100 * 2130

IEEE 754 标准 = 1 10000010 1011010...0

我认为我的回答是错误的,但我想不通。

【问题讨论】:

您是在寻找转换还是提供详细解释? 我正在寻找进一步的解释。 【参考方案1】:

由于我假设您已经知道我们可以转换如下的标准,

将您的数字转换为基数 2

1011.01000 移位这个二进制数

1.01101000

2**3(移位 3)

添加指数 127+3=130

将130转换为二进制格式10000010

所以我们有sign * 2^exponent * mantissa

Sign 这里显然是负数,所以符号位是1

2^3(因为 3 是您的指数,我们将其转换为二进制结果为 130)将是 10000010

这里的尾数是01101000000000000000000

你的最终结果是1|10000010|01101000000000000000000

【讨论】:

太棒了,还有一个问题,我是否将隐藏位放在答案中还是没有必要? @Marga 您应该省略它,因为它可以从指数中计算出来,这样可以在尾数中增加一点精度。(如果您正在寻找答案,请不要忘记接受答案) 感谢 Kiloreux 的帮助,它真的帮助了我。 您可以使用在线浮点转换器(如我的exploringbinary.com/floating-point-converter)检查此类转换的答案(检查“单”、“标准化二进制科学记数法”和“原始二进制” ' 框))。

以上是关于使用 IEEE 754 标准(32 位)将数字转换为二进制的主要内容,如果未能解决你的问题,请参考以下文章

将 IEEE754 转换为十进制的方程(标准化形式)

IEEE754是啥

IEEE-754浮点标准简介

请问IEEE754标准中,32位所表示的最大正数是多少?老师给的答案是(2-2的-23次方)*2的

将负分数转换为 IEEE 754

float数据和IEEE754标准