Int是4个字节,范围是+ - 2 ^ 31 Float是4个字节,范围是+ - 1.2E(+ - 38)
Float在Real Line上包含了更多的点,但是等于int的大小.浮点数的符号 - 指数 - 分数表示是如此令人敬畏(或者这个可怜的2的补充)这种大小差异是否会产生?我错过了什么吗?
我发现非常令人惊讶的是,(几乎)代表整个实线的东西与代表整数的大小相同.
Bri*_*ian 50
嗯,这是一个快速解释:
int和float通常在内存中占据"单字".今天,随着向64位系统的转变,这可能意味着你的单词是64位或8字节,允许表示大量的数字.或者,它仍然可以是32位系统,这意味着内存中的每个字占用4个字节.通常,可以逐字访问存储器.
之间的差int和float不在存储器中它们的物理空间,但是在方式ALU(算术逻辑单元)用数字表现.int表示二进制中直接对应的数字(好吧,几乎 - 它使用二进制补码表示法).float另一方面,A 被编码(通常以IEEE 754标准格式)以表示指数形式的数字(即2.99*10 ^ 6是指数形式).
我认为你的误解在于误认为浮点可以代表更多的信息.虽然floats可以表示更大幅度的数字,但它不能用尽可能多的准确度来表示它们,因为它必须考虑编码指数.指数本身可能是一个很大的数字.因此,从浮点数中得到的有效数字的数量较少(这意味着表示的信息较少),而ints表示整数范围,它们所代表的数字的大小要小得多.
NPE*_*NPE 25
我发现非常令人惊讶的是,(几乎)代表整个实线的东西与代表整数的大小相同.
一旦你意识到32位int可以准确表示很多整数,而32位不能表示整数,那么这一点就不那么令人惊讶了float.
A float可以表示比a 更少的不同数字int,但它们分布在更广泛的范围内.
值得注意的是,连续之间的间距floats随着远离零而变得更宽,而对于连续而言它保持恒定ints.
| 归档时间: | 
 | 
| 查看次数: | 49610 次 | 
| 最近记录: |