나와 내 친구가 긴 장거리에서 아주 이상한 문제를 만났습니다. 기본적으로 내 컴퓨터에는 64 비트 프로세서가 있지만 32 비트 시스템이 있습니다. 그는 32 비트 OS와 CPU를 모두 가지고 있습니다.C++ - 말도 안되는 장거리
먼저 우리는 sizeof(long long)
을 인쇄했습니다. 나이 들어
long long blah = 1;
printf ("%lld\n", blah<<40);
는 (올바른 결과입니다) 1099511627776를 반환 : 우리 모두를 위해 그것이 우리가 이런 짓을 그런
8.이었다. 그를 위해 그것은 0입니다.
어떻게 가능합니까? 우리 둘 다 같은 크기입니다.
미리 감사드립니다.
편집 : 코드 블록 12.11을 사용하여 Win7에서 컴파일하고 실행했습니다. 그는 Win XP와 CB의 같은 버전을 사용합니다.
EDIT2 : 요청에 따라 소스 코드 :
#include <cstdio>
int main()
{
long long blah = 1;
printf ("%lld\n", blah<<40);
return 0;
}
및
#include <cstdio>
int main()
{
printf ("%d", sizeof(long long));
return 0;
}
만약 내가 추측해야만한다면 그의 코드가 당신과 약간 다르다 - 예를 들어 그는 "% lld"대신에 "% ld"를했을 것이다. 대신에'cout'을 대신 사용하여 결과를 알려주시겠습니까? – rabensky
우리 모두 똑같은 프로그램을 운영했는데, 나는 그에게 나의 코드를 보냈다. – szczurcio
* 완전한 * 프로그램 ('# include' 지시자와'main'의 완전한 정의 포함)을 보여주십시오. –