컴퓨터 과학에서 비정규 값(非正規값, denormal number) 또는 비정규화 값(非正規化값,denormalized number), 또는 준정규 값(準正規값, subnormal number)는 부동소수점 연산에서 0 주위의 언더플로 차이를 채워준다. 가장 작은 일반 숫자보다 더 작은 0이 아닌 값를 '비정규 값'이라고 한다.

일반적인 부동소수점 값에서는 가수 앞에 0이 한개 이상 선행할 수 없다. 이렇게 유효숫자의 첫자리를 1로 시작하도록 하는 과정을 정규화라고 한다. 따라서 0.0123은 1.23 × 10−2으로 표시될 것이다. 이렇게 표시한 값을 정규값(normal number)이라고 한다.

비정규 값은 최소 지수값(지수는 일반적으로 제한된 범위를 가진다.) 아래의 지수값으로 표현되는 숫자들이다. 그런 숫자들은 가수가 0으로 시작하여 표현될 수 있다.

IEEE 부동소수점 숫자의 가수는 유효 숫자를 표현하는 부동소수점 숫자의 일부이다. 정규화된 양수는 m0.m1m2m3...mp-2mp-1 (m은 유효한 숫자이고 p는 정밀도이고, m0은 0이 아니다.)로 표현될 수 있다. 이진 기수의 경우 언제나 맨 앞의 숫자는 1이다. 가장 작은 정규화된 숫자보다 0에 가까운 숫자를 표현하기 위해서 비정규 값은 지수가 가능한 가장 작은 값이기 때문에 가수 (0.m1m2m3...mp-2mp-1) 에 0이 올 수 있다.

예를 들어, 만약 표현 가능한 가장 작은 양수가 1×β-n라면 (β는 부동소수점 체계에서의 밑, 일반적으로 2 혹은 10), 그보다 더 작은 모든 양수는 비정규값으로 표현할 수 있다.

비정규 값을 만들어내는 것은 결과값이 작을 때 정확도를 천천히 잃어버리는 계산을 허용하기 때문에 점진적인 언더플로우라고 불린다.

참고자료 편집