2010-01-24 8 views
0

내가이 코드에는 어떤 종류의 데이터 형식을 사용해야합니까? C++에서 600851475143? 내가 긴 INT를 선언 할 경우에도

long int num = 600851475143; 

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

는 데이터 형식이 경우 오류가 사용되어야한다 ......처럼, C의 ++를 사용하고 있습니다?

+0

http://stackoverflow.com/questions/2127473/what-kind-of-data-type-is-long-long 수 있습니다 "긴"데이터 유형으로 선언 –

답변

1

그것의 많은 사용중인 플랫폼과 컴파일러에 따라 달라집니다.

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

8

당신이 수 후 접미사 L을 추가해야한다

long long int num = 600851475143LL; 
1

변수 유형을 변수에 할당 할 값으로 사용하는 식과 구분해야합니다. tur1ng가 지정되었으므로, 모호성이 발생할 수있는 경우 할당 한 값의 정확한 유형에 정수 리터럴 접미어를 사용해야합니다.

Unsuffixed 진수 값은 다른 유형을 가질 수 int는, long int는, unsigned long intlong long int, 그래서 그것이 명시하는 것이 좋습니다.

그냥 (당신은 자바 사용하는 경우) 다음과 같이해야 할
-2

:

긴 NUM = 60085147514L을;

이것은 당신이 더 이상 숫자를 저장하는

관련 문제