2010-08-13 6 views

답변

2

64 비트 정수는 소수, double 또는 long double을 필요로하는 경우 (long는, int64_t, unsigned long, uint64_t)이 트릭을 할, 또는해야한다.

+3

당신은 순수한 C에서 운이 없어, 'double'과'long double'은 소수점 형이 아닌 부동 소수점 형입니다. – Joey

+0

아니요. 서명 한 경우에도 12 자리 이상을 유지할 수있는 64 비트 정수를 언급했습니다. –

+0

인쇄 할 때 어떻게 사용해야합니까? "% ld"은 오래 기억하고있었습니다. – DesperateCoders

0

하는 것은 당신에게 (18 개 전체 숫자) 범위를 제공 이후는, 64 비트 정수형이있는 경우이 wiki page

4

, 나는 그와 함께 갈 것 발견했습니다 Bignum이라는 라이브러리를 찾고 있지만 : 다른 작업 (더 큰 정수 또는 대규모 부동 소수점 값)에 대한

−9,223,372,036,854,775,808 to 
+9,223,372,036,854,775,807 

, 나는 GMP는 GNU 다중 정밀도 라이브러리를 사용합니다. 그것은 성능이 인상적입니다.

1

"unsigned long long"을 형식 지정자 "llu"와 함께 사용할 수도 있습니다. 그것은 C에서 12 자리 숫자에 대해 잘 작동합니다.

unsigned long long i=600851475143; 
printf("%llu",i); 
관련 문제