какой тип данных я должен использовать для этого 600851475143 в C ++? - PullRequest
0 голосов
/ 24 января 2010

Я использую C ++, даже если я объявляю long int, есть ошибка, как ......

    long int  num = 600851475143;

 warning: integer constant is too large for ‘long’ type

какой тип данных следует использовать в этом случае?

Ответы [ 4 ]

8 голосов
/ 24 января 2010

Вы должны поставить суффикс L после числа:

long long int num = 600851475143LL;
1 голос
/ 24 января 2010

Вы должны отличать тип переменной от типа целочисленного выражения, которое вы используете в качестве значения, присваиваемого переменной. Как указано в tur1ng, вы должны использовать целочисленный литеральный суффикс для точного типа значения, которое вы назначаете, если может возникнуть неоднозначность.

Десятичное значение без суффикса может иметь различный тип: int, long int, unsigned long int, long long int, поэтому неплохо быть явным.

1 голос
/ 24 января 2010

Многое зависит от платформы и компилятора, который вы используете.

Если вы работаете на платформе x64, тип данных long в C ++ должен работать. A подписанный длинный составляет от -9 223 372 036 854 775 808 до + 9 223 372 036 854 775 807. Длинна без знака, с другой стороны, колеблется от 0 до + 18,446,744,073,709,551,615.

Также, в зависимости от компилятора и платформы, есть несколько других типов данных, которые фактически являются одинаковыми (двойное слово, длинное слово, длинное длинное, четырехугольное, четырехзначное слово, int64).

C (не C ++) поддерживает тип данных long long. Скажем, если вы используете Fedora 10 x32, gcc 4.3.0 поддерживает тип long long, но вы должны поставить LL после большого литерала. Увидеть http://www.daniweb.com/forums/thread162930-2.html

0 голосов
/ 23 декабря 2012

Вы просто должны сделать следующее (если вы используете Java):

длинный номер = 60085147514L;

это объявляет его как "длинный" тип данных, который позволяет хранить более длинные числа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...