5

我对整数和浮点数有一些疑问:

  1. 我可以将每个32 位无符号整数值存储到64 位IEEE 浮点值中(这样当我将双精度值分配回 int 时,int 将包含原始值)?

  2. 不能存储在32 位IEEE 浮点值(与 1 中的定义相同)中的最小(数量级)正整数和负整数是什么?

  3. 这些问题的答案是否取决于所使用的语言?

//编辑:我知道这些问题听起来有点像一些测试,但我问这些问题是因为我需要对数据格式定义做出一些决定

4

1 回答 1

3
  1. 是的,您可以将 32 位整数存储为 64 位double而不会丢失信息。尾数有 53 位的精度,这就足够了。
  2. 32 位float有 24 位尾数,因此具有唯一表示的最大和最小整数是 2^24-1 和 -2^24+1(16777215 和 -16777215)。更大的数字没有唯一的表示;例如16777216 == (float)16777217
  3. 如果您假设语言遵循 IEEE-754,则它不依赖于语言。
于 2013-09-21T15:33:41.557 回答