2013-03-29 6 views
-1

일부 값을 계산하는 C 프로그램을 작성해야합니다. 사실 문제가 없어야하고 프로그램은 작은 수를 위해 작동하지만 2^32와 같이 큰 수를 인쇄하려고 할 때 예를 들어 작동하지 않습니다. 좋아, 정수 varable 2^32 비트 큰 알고 있지만 긴 변수 또는 부호없는 긴 변수를 사용할 수 없습니다?많은 수의 printf

unsigned long erg = pow(2,32); 
printf(%u, erg); 

가 작동하지 않는 이유는 무엇입니까?

+2

처음에는 컴파일되지 않습니다. –

+0

당신은'unsigned long long erg = pow (2, 32); printf ("% llu \ n", erg);'. – alk

답변

0

, 당신의 기본 아키텍처에이 디펜 %lu입니다. 32 비트 시스템을 사용하는 경우 2^31-1보다 큰 정수를 생성 할 수 없습니다. 32 비트 시스템조차도 2^32를 넘지 않고 처리 할 수 ​​없습니다. 범위는 -2^31에서 2^31 - 1

+0

아하 : 감사합니다. :) 감사합니다! – user2224328

2

부호없는 긴 인쇄에 대한 올바른 형식은하지 %u