Размер двойного байта в 32-битной и 64-битной ОС
-
12-09-2019 - |
Вопрос
Есть ли разница в двойной размер, когда я запускаю свое приложение в 32- и 64-битной среде?
Если я не ошибаюсь, двойное значение в 32-битной среде будет занимать 16 цифр после 0, тогда как двойное значение в 64-битной среде будет занимать 32 бита, я прав?
Решение
Нет, ан Число с плавающей запятой двойной точности IEEE 754 всегда 64 бита.Аналогично, одинарная точность float
всегда 32 бита.
Если ваш вопрос касается конкретно C# и/или .NET (как указано в вашем теге), все Размеры типов данных фиксированы, независимо от архитектуры вашей системы.Это то же самое, что Java, но отличается от C и C++, где размеры типов различаются от платформы к платформе.
Целочисленные типы обычно имеют разные размеры в разных архитектурах C и C++.Например, int
имел ширину 16 бит в 16-битной DOS и 32 бита в Win32.Однако стандарт IEEE 754 настолько распространен для вычислений с плавающей запятой, что размеры float
и double
делать нет варьироваться в любой системе, которую вы найдете в реальном мире - 20 лет назад double
было 64 бита, и так есть и сегодня.
Другие советы
В С# double всегда имеет размер 8 байт (64 бита).
Это не меняется.
Простой способ проверить это — написать простое консольное приложение с
Console.WriteLine(Double.MaxValue);
и компилируем как в x86, так и в x64.