이진 부동 소수점 산술 표준
IEEE는 전기 전자 기술자 협회(Institute of Electrical and Electronics Engineers)의 약자이다. 정보통신 기술의 발달, 그리고 컴퓨터의 발달로 1985년에 IEEE에서 지정한 이진 부동 소수점 산술 표준(Binary Floating Point Arithmetic Standard)에 대해 이야기해보고자 한다.
산술 연산에 있어 무리수의 존재는 1과 0으로 구현된 컴퓨터에게 구현하기 어려운 정보이다. 이에 IEEE에서는 컴퓨터 혹은 전산기기에서의 실수 표현을 위해 데이터 표준을 제시했다. 이 실수에 사용되는 표준 정보는 64 bit로 이루어져 있다. 다시 말해서, 특정 소수 하나를 정의하는데 필요한 데이터는 64 bit이다.
가장 먼저 부동 소수점을 나타내는 이진 표현은 다음과 같은 식을 따르는 것으로 알려져 있다.
여기에서 특정 문자로 표시한 s, c, 그리고 f에 대해 알아보자.
s의 의미 _ sign
가장 먼저 부호(sign)에 대한 정보는 s로 대신하며, 하나의 bit로 구성된다. 즉, 실수가 양수이냐 음수이냐는 0과 1로 각각 나타내며, 1 bit의 s가 이를 의미한다. 예를 들어, 다음과 같이 1 bit로 표현되는 이진수는 다음과 같다.
0 또는 1
0 : 양수
1 : 음수
c 의 의미 _ characteristic
11개의 bit 정보로 구성된 c는 앞에서 보인 이진 표현식에서 2를 기저로 하는 지수항을 대신한다. 이 c는 특질(characteristic)의 약자로 소수점 산술 표준의 지수항 부분을 나타내는 정보를 의미한다. 예를 들어, 다음과 같이 11bit의 이진수를 가정하고 c의 의미를 알아보자.
00000000001 또는 11111111111
위의 두 예시는 각각 10진법으로 바꾸어주면, 다음과 같은 수로 변환된다.
즉, 11bit로 최대한 나타낼 수 있는 십진수는 0부터 2047이 된다. 하지만 더 작은 부동 소수와 그 균등한 범위를 위해서 c가 가지는 범위를 음수 지수와 양수 지수로 각각 나눈다. 이에 대한 보다 자세한 이해는 마지막 부분에 다시 설명하였다.
f 의 의미 _ mantissa
f는 나머지 53 bit로 구성되며, 가수부(mantissa)를 의미한다. 즉, f는 부동 소수점에서 유효 숫자라는 뜻이다. 재미있는 점은 가수부의 10진수 변환 방법이다. 예를 들어, 다음의 53 bit 이진수가 있다고 하자.
111010... 나머지 0으로 생략... 0
부동 소수점에 대입할 f는 다음과 같다.
이진 부동 소수점 산술 표준의 간격
IEEE에서 지정한 방식으로 산술 표준을 계산하면 소수점의 가장 최소 간격은 어떻게 될까?
C를 고려하지 않는 최소 간격
먼저, s와 c가 각각 0, 1023일 때 f의 최소 간격을 한번 계산해보자.
000... 1과 00... 10을 비교하면 적절할 것으로 예상된다. 즉, 다음을 비교하면 된다.
(1/2)53
(1/2)52
이를 계산하면 각각 다음과 같다.
1.1102230246251565404 x 10-16
2.2204460492503130808 x 10-16
대략 1.1 x 10-16 의간격을 갖는다.
이것도 충분히 작은 간격이라고 생각될 수 있지만, 더 작은 소숫자리도 표현 가능하다.
C를 고려 하는 최소 간격
이제 c를 고려하여 최소 간격을 결정해보자.
부동 소수가 양수에서 가장 작은 수가 될 수 있는 경우는 s, c 그리고 f 가 각각 0,1,0 일 때이다.
* c의 양수 지수
c는 1024가 되면 지수항이 양수가 된다. 양수가 되면 f가 음수를 지칭하게 된다.
즉, 부동 소수가 양수에서 가장 큰 수가 될 수 있는 경우는 s,c 그리고 f 가 각각 0,2046, 1-2-52일때이다.
'RESEARCH > A piece of INFO.' 카테고리의 다른 글
자연로그와 멱급수 (0) | 2022.03.23 |
---|---|
강력한 테일러 시리즈와 멱급수 (0) | 2022.03.23 |
알고리즘 표기법과 읽는 방법 (0) | 2022.03.04 |
단위에 중요한 접두사 용어 정리 (0) | 2021.12.15 |
화음에도 이름이 있다? (0) | 2021.12.06 |