2011-03-02 6 views
4

저는 32 비트 Windows PC에서 '초기 컴퓨팅'을하고 한계를 조사하고 있습니다.32 비트 고정 소수점 오버플로

이제 ** 32 (2)는 4,294,967,296이며, 나는

4294967290 + 5 

완벽하게 OK 것을 발견하고,

4294967290 + 6 

은 아주 적절하게 오버 플로우. 제품, 4,294,967,290이 범위에 있지만 나를 퍼즐 무엇

는, 그

429496729 * 10 

오버 플로우입니다.

누구든지 관심이 있으십니까?

+0

어떤 환경을 사용하고 있습니까? 컴파일러/인터프리터가 부정확 한 경계 검사를하고있을 수 있습니다. – ThomasMcLeod

+0

그건 그렇고 고정 소수점이 아니에요, 그것은 정수입니다. 고정 소수점은 배율이있는 정수입니다 (예 : 100 = 1.00, 4323 = 43.23 등). – paxdiablo

+0

어떤 프로그래밍 언어를 사용하십니까? – starblue

답변

4

코드가 없으면 429496729이 부호가있는 정수로 암시 적으로 입력되는 것 같습니다. 그 중 4294967290은 너무 많습니다.

+0

당신은 나를 때렸어. 그 결과는 아마도 그것을 입증하는 데 부정적인 것일 수 있습니다. – phkahler

+0

감사합니다. 실제로 코드는 없지만 Visual C 6 디버거 조사 창 (내 '프로빙'에 사용됨)은 숫자 정수를 부호로 평가합니다. 상당히 합리적입니다. 모두 서명되지 않은 int가 좋습니다. –

관련 문제