부동 소수점(Float point)를 설명하기 전 부동소수점(Fixed point)에 대해 먼저 설명하겠다.
고정 소수점(Fixed Point)
정수를 이진수로 표현할 때는 맨 앞의 비트만 부호를 나타내는 부호로 두고, 그 외의 비트를 통해 값을 변환해 컴퓨터에 정보를 전달할 수 있다. 예를 들어 short, int, long 등의 자료형에 있어 변수에 대입될 최대 최소값을 고려하여 자료형을 설정해 resource를 효율적으로 관리할 수 있다.
실수의 경우는 어떻게 이진수로 표현할까? 먼저 고정 소수점의 경우 정해진 비트를 반으로 나눠 정수부와 소수부를 나누어 값을 이진수로 표현한다. 이렇듯 정수와 소수가 나누어지는 부분이 고정되어 있기 때문에 해당 표현 방식을 고정 소수점이라고 한다. 아래는
그러나, 표현하고자 하는 값이 1.92315013 이거나 93476919.1 인 경우 정수부나 소수부 둘 중 하나의 부분은 비트가 낭비된다. 이를 해결하기 위한 표현법이 부동 소수점(Float point)이다.
부동 소수점(Float point)
부동 소수점은 소수점의 위치를 알려주는 지수부와 값을 나타내는 가수부로 나누어 진다. 이 경우 소수점을 나타내는 소수부를 따로 할당하고 실제 값은 가수부로 나타내 정수와 소수의 크기와 상관없이 정해진 비트 내에서 값의 표현이 가능해 진다. 여기서 32비트를 예시로 맨 앞의 비트는 부호비트, 상대적으로 더 적은 크기를 갖는 지수부를 8비트, 남은 23비트를 가수부로 할당하여 실수를 표현해준다.
'개발 > 자료구조 🗂️' 카테고리의 다른 글
[자료구조] 연결리스트를 이용해 스택 구현하기 / Java, Stack, LinkedList(단방향) (0) | 2023.08.04 |
---|---|
[자료구조] Java의 자료형 (0) | 2023.07.04 |