【发布时间】:2021-02-07 16:02:26
【问题描述】:
我正在学习编程入门课程(java 中),我很想了解为什么 java 中原始数据类型的范围是这样的。当谈到像字节这样的整数数据类型时,似乎很容易理解为什么它只接受 -128 到 127 的值;一个字节的大小为 8 位,最多可以包含 256 个值,因此我们可以为这 256 个值中的每一个分配一个自然数,我相信这就是幕后发生的事情。它还解释了为什么排除 128:我们有 128 个负数、127 个正数和零。这些加起来已经有 256 个。 [1,256] 和 [-128,128] 之间没有双射。
这个想法对于所有类似整数的数据类型的范围都是有意义的,但是当涉及到浮点时,人们会看到一些奇怪的范围。例如 double 的范围是 [-2^{1074},(2-2^{-52})2^{1023}]。为什么会这样?
我为繁琐的符号道歉,显然我不能在这里使用乳胶。
【问题讨论】:
标签: java floating-point integer