11

考虑到int在 32 位系统上是 4 个字节,在 64 位系统上是 8 个字节,为什么float不一样对待?为什么在 64 位系统上 a 的大小是double!= a的大小?float考虑到当我声明一个时选择了最好的本机整数类型int(这会导致更高的性能),不应该发生同样的情况float(这也会导致性能提高)吗?

相关问题:在 32 位系统和64 位系统上声明一个类型my_float(请原谅这个名字!)是一个坏主意吗?floatdouble

4

1 回答 1

23

你的问题是基于一个错误的前提。在大多数现代 64 位系统上,int仍然是 4 个字节。当很少需要这么大的整数时,为什么要消耗两倍的内存和两倍的内存带宽?在典型的现代 64 位系统上,64 位整数的数学运算并不比 32 位整数的数学运算快,因此没有任何好处。

于 2012-09-04T01:11:19.077 回答