본문 바로가기

[ programing ]/정보처리

부동소수점 연산과 정규화하기 (floating-point-operation)?

[부동소수점 연산과 정규화하기 (floating-point-operation)?]




컴퓨터는 정수인 0과 1만을 인식할 수 있는 디지털 기계입니다.

이런 컴퓨터에서 연산을 담당하는 CPU역시 정수연산을 주로 하는 처리장치인데요!

세상에는 정수 데이터만 있는 것은 아니죠. 정수보다 더 정밀한 소숫점을 가지구 있는 실수가 존재합니다.


정수외에 이런 소숫점 이하의 데이터를 처리하는 것을 부동소수점 연산이라 합니다.

즉, 부동소수점(Floating Point)연산은 소숫점 아래의 숫자를 컴퓨터가 이해할 수 있는 이진수로 변환해 처리하는 것을 말합니다.

부동소수점 연산은 정수 연산에 비해 특별한 절차가 들어가야 하다보니 연산을 담당하는 CPU내부에는 부동소수점 연산만을 위한 별도의 구조를 가지고 있습니다.


주로 3D 그래픽 데이터들이나 공학, 과학, 수학적 응용에 사용되는 복잡한 데이터들입니다.


예를 들어 100이라는 정수가 있다면 

100.00000000001이 더 정밀하다고 할 수 있습니다.


이런 데이터를 처리하는 것이 부동 소수점 연산입니다.



부동소수점 정규화 하기!








부호 : 0 일경우 양수

         1일경우 음수



지수 : Bias(바이어스) 값 64에 지수값을 더해서 표현

가수 : 16진수로 표현