최근에 IEEE754 표준의 언더 플로 정의에 대해 혼란 스럽습니다. 구현에서 비정규 숫자를 지원하지 않으면 표현할 수있는 최소 숫자는 MinNorm = 1.0 * 2^-126입니다. 모든 연산에서 MinNorm보다 작 으면 Underflow로 간주됩니다. 그러나 구현이 비정규 숫자를 지원하면 표현할 수있는 최소 숫자는 MinSubnorm = 1.0 * 2^-149입니다. 이제 문제는 다음과 같습니다. 연산의 결과가 MinNorm보다 작 으면 언더 플로우입니까? MinSubnorm보다 작습니까?비정규 수치를 지원하는 구현 (IEEE754)에서 언더 플로를 정의하는 방법은 무엇입니까?
이제는 비정규 숫자를 지원하는 FPU 구현에 대해 노력하고 있습니다. 반올림하기 전에 결과가 -MinNorm과 + MinNorm 사이에 있고 반올림 한 후 MinNorm보다 작을 것이라고 가정합니다 (비정규 숫자를 사용하여 표현 가능). 나는 그것을 무엇으로 간주 할 것인가? 언더 플로우 또는 언더 플로우가 아닌가? 언더 플로우 상태 비트를 설정해야하는 경우?
나는 온라인으로 약간의 각종 정보를 발견하지만, opinons은 다음과 분기 : 당신은 작은 크기 비제 수보다 작다 작업을 수행 할 때
http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/underflow.html 언더 플로가 발생합니다. IEEE 754 단 정밀도에서 이것은 1.0 x 2-149 미만의 크기 (즉, 절대 값)를 갖는 값을 의미합니다. 부동 소수점 연산의 실제 결과는 목표 데이터 유형에서 통상의 부동 소수점 수와 최소치 표현할 수 이상 (즉, 0에 가깝게한다)의 크기가 작은 경우
http://en.wikipedia.org/wiki/Arithmetic_underflow 언더 플로가 발생할 수
w.r.t. IEEE 754, 위키 백과 참조가 더 정확합니다. 대충 말하면, 가장 작은 * normal *보다 작은 결과는 언더 플로우를 나타냅니다. 세부 사항은 다소 미묘하지만, 컷오프가 반드시 * 정확히 * MinNorm은 아닙니다. 자세한 내용은 "반올림하기 전에 언더 플로우"및 "반올림 한 후 언더 플로"에 대한 Google을 참조하십시오. 또한 언더 플로 플래그 대 언더 플로 신호에 대한 미묘한 차이가 있습니다. –
그리고 참조 1에서 "...보다 작은 연산"은별로 의미가 없습니다. 작업의 크기는 얼마입니까? ''. –
감사합니다! 하지만 지금 나는 비정상적인 수를 지원하는 FPU의 구현에 대해 연구 중이다. 그래서 MinNorm보다 작은 결과를 얻으면 상태와 플래그 비트를 설정할 때 어떻게해야합니까? 언더 플로우로 간주할까요? 또는 MinSubnorm보다 작은 경우? – dawudianfen