Java如何在内存中存储+ -Infinite?

Luk*_* Vo 2 java memory math infinite

如果它需要所有32位存储从-2 ^ 31到2 ^ 31,它怎么能存储+和 - 无限?它是否使用更多内存?存储这些值是否安全且安全?

更新:由于答案,我知道只有浮点数据类型可以存储Inf值,而Integers不能.

小智 8

Java以及大多数其他编程语言遵循IEEE 754规范的浮点数.可能值的范围略微减小以允许无穷大以及NaN(非数字).这些都是安全的存储; 例如,它们甚至可以作为常量使用Double.POSITIVE_INFINITY.

如果从-2 ^ 31到2 ^ 31存储所有32字节

我认为你的意思是32 ,用于存储此范围内的所有可能的整数值.Java的Integer类型按照您的描述工作,无法存储无穷大或其他特殊值.


T.J*_*der 6

如果它需要所有32 字节位存储从-2 ^ 31到2 ^ 31 ...

你在谈论Integers.

......怎么能存储+和 - 无限?

你在谈论FloatDouble,它们是不同的数据类型.Float是32位IEEE 754号码,Double是64位IEEE 754号码.IEEE 754浮点数具有为正无穷大预留的特殊值.

Java Integer类中没有特殊的"无穷大"值,您可以存储全部值.