Различие между длинным и международным в C#?

Каково фактическое различие между a long и int в C#? Я понимаю, что в C/C++ долго были бы 64 бита в платформы приблизительно на 64 бита (в зависимости от ОС, конечно), но в C# это все работает во времени выполнения.NET, так есть ли фактическое различие?

Другой вопрос: может int держите a long(броском), не теряя данные по всем платформам?

40
задан Earlz 16 December 2009 в 23:03
поделиться

6 ответов

an int ( System.Int32 в среде выполнения) всегда является 32-битным целым числом со знаком на любой платформе, длинное (также известное как System.Int64 ) всегда является 64-битным числом со знаком. битовое целое на любой платформе. Таким образом, вы не можете выполнить приведение из long со значением выше Int32.MaxValue или ниже Int32.MinValue без потери данных.

69
ответ дан 27 November 2019 в 01:14
поделиться

int в C # => System.Int32 => от -2 147 483 648 до 2 147 483 647.

long в C # => System.Int64 => от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807

Если ваш long данные превышают диапазон int, и вы используете Convert.ToInt32, тогда он вызовет OverflowException, если вы используете явное приведение, результат будет неожиданным.

21
ответ дан 27 November 2019 в 01:14
поделиться

Разница есть - в C # long - это 64-битное целое число со знаком, int - 32-битное целое число со знаком, и так будет всегда.

в C # long может содержать int, но int не может содержать long.

C / C ++ этот вопрос зависит от платформы.

4
ответ дан 27 November 2019 в 01:14
поделиться

int - это 32 бита в .NET. long - 64-битный. Это гарантировано. Итак, нет, int не может удерживать long без потери данных.

Существует тип, размер которого изменяется в зависимости от платформы, на которой вы работаете, это IntPtr (и UIntPtr). Это может быть 32 или 64 бита.

8
ответ дан 27 November 2019 в 01:14
поделиться

В C # int - это System.Int32 , а long - это System.Int64 ; первый - 32-битный, а второй - 64-битный.

Для сравнения, C ++ предоставляет лишь смутные гарантии относительно размера int / long (вы можете покопаться в стандарте C ++ для получения точных, кровавых деталей).

4
ответ дан 27 November 2019 в 01:14
поделиться

Я думаю, что int - это 32-битное целое число, а long - это 64-битное целое число.

0
ответ дан 27 November 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: