将十进制数转换为二进制IEEE 754格式

作者: John Pratt
创建日期: 15 二月 2021
更新日期: 1 七月 2024
Anonim
[Verilog入門教學] 背景知識#7 浮點數 Floating-point與IEEE 754標準
视频: [Verilog入門教學] 背景知識#7 浮點數 Floating-point與IEEE 754標準

内容

与人类不同,计算机不使用十进制数字系统。他们使用具有两个可能的数字0和1的二进制或二进制数字系统。因此,在IEEE 754(IEEE用浮点数表示二进制数字的标准)中,数字的写法与我们在传统十进制系统中的写法大不相同。习惯于。在本文中,您将学习如何根据IEEE 754写单精度或双精度数字。对于这种方法,您需要知道如何将数字转换为二进制形式。如果您不知道如何执行此操作,则可以通过阅读文章将二进制转换为十进制来学习。

  1. 选择单精度或双精度。 当以单精度或双精度写数字时,成功进行转换的步骤对于这两个都是相同的。唯一的变化发生在转换指数和尾数的过程中。
    • 首先,我们需要了解单精度的含义。在浮点表示中,任何数字(0或1)都被视为“位”。因此,单个精度总共有32位,分为三个不同的主题。这些主题包括一个符号(1位),一个指数(8位)和一个尾数或分数(23位)。
    • 另一方面,双精度与单精度具有相同的设置和相同的三个部分-唯一的不同是双精度将是一个更大,更准确的数字。在这种情况下,符号将具有1位,指数11位和尾数52位。
    • 在此示例中,我们将根据IEEE 754将数字85.125转换为单精度。
  2. 分隔小数点前后的数字。 取要转换的数字并将其分开,以便剩下整数和十进制数。在此示例中,我们假设数字85,125。您可以将其分为整数85和十进制0.125。
  3. 将整数转换为二进制数。 这成为85.125中的85,转换为二进制时将变为1010101。
  4. 将小数部分转换为二进制数。 这是85.125的0.125,以二进制格式变为0.001。
  5. 合并已转换为二进制数字的数字的两个部分。 数字85是二进制的,例如1010101,小数部分0.125是二进制的0.001。如果将它们与小数点组合,则将得到1010101.001作为最终答案。
  6. 将二进制数转换为二进制科学计数法。 您可以通过将小数点向左移动到第一位的右侧来将数字转换为二进制科学计数法。这些数字已归一化,这意味着前导位将始终为1。至于指数,移动小数的次数就是二进制科学计数法中的指数。
    • 请记住,将小数点向左移动会产生一个正指数,而将小数点向右移动会产生一个负指数。
    • 在我们的示例中,您必须将小数点移动六次才能将其移到第一位的右侧。结果格式变为 01,01010100126{ displaystyle 01.010101001 * 2 ^ {6}}确定数字的符号并以二进制格式显示。 现在,您将确定原始数字是正数还是负数。如果该数字为正,则将该位写为0;如果该数字为负,则将其写为1。由于原始数字为85.125正,因此将该位写为0。这现在是单精度32个位中的第一位根据IEEE 754进行渲染。
    • 根据精度确定指数。 单精度和双精度都有固定的偏差。单精度的指数偏差为 127,这意味着我们必须添加先前找到的二进制指数。所以您要使用的指数是 127 + 6 = 133.
      • 顾名思义,双精度会更精确,并且可以容纳更大的数字。因此,指数的偏差 1023。此处适用于单精度的相同步骤,因此可用于确定双精度的指数为1029。
    • 将指数转换为二进制。 确定最终指数后,需要将其转换为二进制,以便可以在IEEE 754转换中使用。在示例中,您可以将在上一步中找到的133转换为10000101。
    • 确定尾数。 尾数表示法或IEEE 754转换的第三部分,是科学二进制表示形式的小数点后的数字的余数。您只需省略前面的1,然后复制数字乘以2的小数部分。无需二进制转换!在示例中,尾数变为的010101001 01,01010100126{ displaystyle 01.010101001 * 2 ^ {6}}最后,将三个部分组合为一个数字。
      • 最后,您将到目前为止我们已经计算出的所有内容都结合到了您的转化中。该数字将首先以您在第7步中根据符号确定的0或1开头。在示例中,您以0开头。
      • 然后,您具有在步骤9中确定的指数。在示例中,指数是10000101。
      • 然后是尾数,即转换的第三部分和最后一部分。您在进行二进制转换的小数部分时已推论出了这一点。在示例中,尾数为010101001。
      • 最后,将所有这些数字相互结合。顺序是符号指数尾数。连接这三个二进制数字后,用零填充尾数的其余部分。
      • 例如,将85.125转换为二进制IEEE 754格式就是解决方案 0 10000101 01010100100000000000000.