36

アプリを 32 ビット環境と 64 ビット環境で実行すると、 2 倍のサイズに違いはありますか?

私が間違っていなければ、32 ビット環境の double は 0 の後に 16 桁を占めますが、64 ビット環境の double は 32 ビットを占めますよね?

4

3 に答える 3

71

いいえ、IEEE 754 倍精度浮動小数点数は常に 64 ビットです。同様に、単精度floatは常に 32 ビットです。

質問が C# や .NET に関するものである場合 (タグが示すように)、システム アーキテクチャに関係なく、すべてのデータ型のサイズは固定されています。これは Java と同じですが、型のサイズがプラットフォームごとに異なる C や C++ とは異なります。

C と C++ では、アーキテクチャが異なると整数型のサイズが異なるのが一般的です。たとえば、int16 ビット DOS では 16 ビット幅、Win32 では 32 ビット幅でした。ただし、IEEE 754 標準は、浮動小数点計算では非常に広く使用されているため、実世界で見られるどのシステムでもサイズとサイズはfloat変わりdoubleませ。20 年前doubleは 64 ビットでしたが、今日もそうです。

于 2009-07-09T01:58:08.723 に答える
10

C# では double は常に 8 バイト (64 ビット) です

于 2009-07-09T01:59:03.933 に答える
7

変わりません。

これを確認する簡単な方法は、単純なコンソール アプリを作成することです。

Console.WriteLine(Double.MaxValue);

x86 と x64 の両方にコンパイルします。

于 2009-07-09T02:07:45.700 に答える