내가이 코드에는 어떤 종류의 데이터 형식을 사용해야합니까? C++에서 600851475143? 내가 긴 INT를 선언 할 경우에도
long int num = 600851475143;
warning: integer constant is too large for ‘long’ type
는 데이터 형식이 경우 오류가 사용되어야한다 ......처럼, C의 ++를 사용하고 있습니다?
내가이 코드에는 어떤 종류의 데이터 형식을 사용해야합니까? C++에서 600851475143? 내가 긴 INT를 선언 할 경우에도
long int num = 600851475143;
warning: integer constant is too large for ‘long’ type
는 데이터 형식이 경우 오류가 사용되어야한다 ......처럼, C의 ++를 사용하고 있습니다?
그것의 많은 사용중인 플랫폼과 컴파일러에 따라 달라집니다.
x64 플랫폼을 사용하는 경우 C++의 long 데이터 유형이 작동해야합니다. 부호가 긴의 범위는 -9,223,372,036854775808에서 +9,223,372,036854775807까지입니다. 반면 unsigned long은 0에서 +18,446,744,073,709,551,615 사이입니다.
또한 컴파일러 및 플랫폼에 따라 실제로 동일한 항목 (더블 워드, longword, long long, quad, quadword, int64)이있는 몇 가지 다른 데이터 유형이 있습니다.
C (not C++)는 long long 데이터 형식을 지원합니다. Fedora 10 x32에 있다면 gcc 4.3.0은 long long 데이터 타입을 지원하지만 큰 리터럴 뒤에 LL를 넣어야합니다. http://www.daniweb.com/forums/thread162930-2.html
당신이 수 후 접미사 L을 추가해야한다
는long long int num = 600851475143LL;
변수 유형을 변수에 할당 할 값으로 사용하는 식과 구분해야합니다. tur1ng가 지정되었으므로, 모호성이 발생할 수있는 경우 할당 한 값의 정확한 유형에 정수 리터럴 접미어를 사용해야합니다.
Unsuffixed 진수 값은 다른 유형을 가질 수 int
는, long int
는, unsigned long int
는 long long int
, 그래서 그것이 명시하는 것이 좋습니다.
:
긴 NUM = 60085147514L을;
이것은 당신이 더 이상 숫자를 저장하는
http://stackoverflow.com/questions/2127473/what-kind-of-data-type-is-long-long 수 있습니다 "긴"데이터 유형으로 선언 –