32位和64位OS中的双字节大小

时间:2009-07-09 01:55:44

标签: c# 64-bit floating-point double ieee-754

在32位和64位环境下运行应用程序时,double大小是否存在差异?

如果我没弄错,32位环境中的双精度在0之后将占用16位数,而64位中的双位将占用32位,我是对的吗?

3 个答案:

答案 0 :(得分:63)

不,IEEE 754 double-precision floating point number总是64位。同样,单精度float总是32位。

如果您的问题是关于C#和/或.NET的(如您的标记所示),所有数据类型大小都是固定的,与您的系统架构无关。这与Java相同,但与C和C ++不同,其中类型大小因平台而异。

在C和C ++中,不同体系结构的整数类型通常具有不同的大小。例如,int在16位DOS中为16位宽,在Win32中为32位宽。但是,IEEE 754标准对浮点计算无处不在,floatdouble的大小 不会在现实世界中找到的任何系统上发生变化 - - 20年前double是64位,今天就是这样。

答案 1 :(得分:10)

在c#中,double总是8个字节(64位)

答案 2 :(得分:8)

它没有改变。

检查此问题的一种简单方法是使用

编写一个简单的控制台应用程序
Console.WriteLine(Double.MaxValue);

并编译为x86和x64。