GMP에서 Mantissa 정밀한 오버플로를 감지하는 방법은 발생하기 전 또는 후에 어떻게됩니까?

StackOverflow https://stackoverflow.com/questions/472652

문제

질문 i 의미했다 Mantissa가 아니라 걱정하는 것 멱지수, 그리고, 내가 일주일 초에 묻는 질문과 관련이 있습니다. 두 개의 음의 수레의 합에 "누락 된"숫자.

Mantissa가 가변적 인 정밀도를 가지고 있다는 점을 감안할 때, Mantissa의 현재 정밀 설정을 오버플로했는지 어떻게 알 수 있습니까? 또는 사전 측면에서 Mantissa 정밀한 오버플로가 가능할 것인지 어떻게 알 수 있습니까?

친절한 안부, 브루스.

도움이 되었습니까?

해결책

정밀도를 잃을 지 확인하는 몇 가지 수치 방법이 있지만 결론은 정밀도의 정의를 더 잘 이해해야한다는 것입니다.

-4939600281397002.2812

그리고

-4939600281397002.2812000000000000

같은 숫자가 아닙니다.

추가 할 때

-2234.6016114467412141

그리고

-4939600281397002.2812

함께 옳은 더 큰 숫자의 12 자리 숫자가 알려지지 않은. 당신은 그것들이 0임을 암시 할 수 있지만, 그렇다면, 당신은 그것들을 명시 적으로 그렇게 선언하고 그것을 처리 할 수있는 번호 시스템을 사용해야합니다. 컴퓨터는 암시 적 의도를 이해하는 데 능숙하지 않습니다.

이 문제가있을 때를 감지하는 한, 동일한 지수가 있는지 확인하기 만하면됩니다 (정규화 된 Mantissa +/- 1 또는 유사한 이진 등가물을 가정). 그들이 정규화되지 않은 경우, 비교하거나 지수와 약간 더 복잡한 비교를 위해 정규화해야합니다.

정밀도와 정확성은 같은 것이 아닙니다 ...

-아담

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top