c - 使用 IEEE float 表示的最大负实数

标签 c floating-point ieee-754 floating-point-conversion representation

所以我想找到可以使用 IEEE-754 float 表示的最大负实数。

到目前为止我知道符号位应该是1,尾数是11111111,指数是255。我把它们代入公式,然后我得到 -1.11111111 x 2^128。

答案是 -3.403 x 10^38。

如何将已有的内容转换为答案形式?

最佳答案

从这里wikipedia article从位模式计算值的公式是

enter image description here

最大的负数会有

  • 符号位= 1
  • 尾数 = 全 1
  • 指数 = 254

请注意,指数 255 是为无穷大和 NAN 等特殊情况保留的。

将这些值代入公式,我们得到

enter image description here

可以写成

value = (-1)(1 + 0.5 + 0.25 + 0.125 + ... + 2^-23)(2^127)
      = (-1)(2)(2^127)  // since the sum is approximately 2
      = -(2^128)    
      = -3.403 x 10^38  // says my calculator    

关于c - 使用 IEEE float 表示的最大负实数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29713702/

相关文章:

关于指针使用的说明

C++ 双除法并返回

c++ - 0除以无穷大一定是0吗?

java - 在 Java 中获取(十进制) float 的 IEEE 754(单精度)表示

C - 如何在数组中存储带有变量的字符串?

c - C 中的密码库(salt/hash)?

c - 请更正缓冲区溢出

cuda - NVIDIA GPU (sm_13) 上的 IEEE-754 标准

iphone - 如何在 Swift 4 中打印 float 后的 5 位数字,有没有最短的方法?

c++ - 创建包含字符序列的 nan 时,如何取回字符序列?