为什么64位系统上浮动不是双倍的?

时间:2012-09-04 01:08:21

标签: c++ types

考虑到int在32位系统上是4个字节,在64位系统上是8个字节,为什么float不被视为相同?为什么64位系统上的double!= float大小?考虑到当我声明int(导致higher performance)时选择了最佳的原生整数类型,float不应该发生相同的情况(这也会导致性能提升) ?

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

1 个答案:

答案 0 :(得分:22)

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