본문 바로가기
기타

부동소수점 실수 표현

by oncerun 2020. 10. 11.
반응형

실수는 정수의 표현 방식과 다른 부동소수점 방식을 사용하여 표현한다. 정수에서는 소수점이 항상 오른쪽 끝에 있다고 가정하면 되지만, 실수에서는 소수점의 위치가 필요에 따라 움직일 수 있다.

 

1.234 X $10^{12}$   5.678 X $10^{-10}$

 

수를 과학적 표기법으로 바꿔서 표현할 수 있고 이러한 표기법은 일정한 수의 비트로 큰 수 또는 작은 수도 표현이 가능하여 수의 정밀도를 높일 수 있다.

 

부동소수점 표현 방식은 $(-1)^{S}$XMX$B^{E}$와 같이 유효숫자를 사용한 곱셉형태의 과학적 표기법을 바탕으로 수를 표현한다.

 

여기서 S는 주어진 수가 0보다 큰지 작은지를 나타내는 부호이며, M은 가수, B는 기저, E는 지수를 의미한다.

 

컴퓨터에서 기저는 2진법으로 기저에 해당하는 정보는 표현할 필요 없이 부호, 가수, 지수만을 2진수로 표현하면 된다.

 

 

1. 부호 

 부호는 0과 1만을 사용해서 가수 부분의 부호를 표현하면 되기에 1비트를 사용한다.

 

2. 가수

 가수는 부호를 제외한 부분을 부호 없는 정수 방식으로 저장한다.

가수를 표현할 때는 표준화된 형식이 필요하다. 따라서 소수점 바로 왼쪽에 오직 하나의 1만 있도록 정규화 과정을 거친다.

 

3. 지수

 지수는 양수 또는 음수가 될 수 있으며, 부호 비트를 별도로 사용하지 않고 부호와 함께 값을 표현하기 위해 초과 표기법을 사용한다. 이 표기법은 유일하게 부동소수점 방식의 지수 부분을 표현하기 위해서만 사용되는 방법으로 수의 표현을 위해 N비트가 할당된 경우 $2^{n-1}$ 또는 $2^{n-1}$-1을 매직넘버로 지정한다.

이러한 매직넘버를 지수에 더하고 그 결과를 비트에 맞도록 2진수로 변환하면 되고 지수를 10진수로 해석하기 위해서는

2진수로 표현된 지수를 10진수로 바꾸고 매직넘버를 빼면 다시 10진수로 변환된다.

 

예를 들어 10진수 43.6875($101011.1011_2$)를 부동 소수점 방식으로 표현하면 (지수 부분 8비트 가수 15비트 부호 1비트)

1) 정규화

 1.010111011 X $2^5$

2) 지수

매직넘버(초과_127)로 설정하면 5 + 127 = 132 = $1000100_2$가 되고

3) 가수

가수 부분에는 정규화 결과 유효숫자 첫째 자리는 언제나 1이므로 표시하지 않고 수소 부분만 표현되도록 비트로 채우고 나머지 부분에는  0으로 채운다.

4) 부호

0보다 크므로 0

 

최종 결과는

0 1000100 010111011000000이 된다.

반응형

'기타' 카테고리의 다른 글

프로그래밍 언어의 기본 공통 개념  (0) 2020.10.26
조합회로와 순차회로  (0) 2020.10.26
펌 특수문자 모음  (0) 2020.10.11
컴퓨터가 부호 있는 정수를 표현하는 방법  (0) 2020.09.30
진법  (0) 2020.09.30

댓글