컴퓨터에서의 정수 표현

컴퓨터는 0과 1로 이루어진 기계어를 사용한다는 사실은 널리 알려져 있다. 인간은 수를 표현할 때 기본적으로 10진법을 사용하지만, 컴퓨터는 이를 0과 1로 이루어진 이진법으로 저장하게 된다. 그러므로 컴퓨터가 수를 표현하는 법에 대해서 얘기하려면 10진수를 2진수로 우선 변환해야 한다.

ex) 11 → 1011

소수부의 이진법 변환

소수점을 변환 할 때, 소수점 앞부분인 정수부는 기존에 알던 방식으로 2진수로 변환하면 된다. 하지만 소수부는 위의 방법과 조금 다른데, 소수점 뒤에 있는 숫자들을 하나씩 2진수로 바꾸는 것이 아니라 정수부 변환과 반대로 진행해야 한다. 만약 소수부도 정수부와 같은 방법으로 변환하게 된다면 다음과 같은 문제가 생긴다.

	1.9 -> 1.0001               || 1.41 -> 1.100 1

서로 다른 수이지만 기존 방식으로 이진수로 변환하면 둘이 같은 모양을 하게 된다.

예시와 같이 두 실수는 다르지만 2진법으로 변환하면 같은 수가 나오는 경우가 생기게 되므로 소수부는 정수부와 같은 방법으로 진행 할 수 없다.

정수부에서는 10진수를 2로 나눠가며 1이나 0을 구했다면 소수부는 10진수에 2를 곱해 가면서 1이나 0을 구한다. 정수부 변환에는 1이 나오면 종료했지만, 소수부는 0이 나오면 종료하고 결과를 밑에서부터 위가 아닌 위에서 아래로 읽는다.

0.625를 이진수로 바꾸기
1) 0.625 * 2 = 1.25 -> 1을 빼고 나머지 0.25
2) 0.25 * 2 = 0.5 -> 0을 빼고 나머지 0.5
3) 0.5 * 2 = 1 0> 1을 빼고 나머지 0

위에서 아래로 읽으면 101으로 변환

컴퓨터에서 소수점을 표현하는 방식 2가지

1. 고정 소수점(Fixed Point)

고정 소수점 표현 방식은 쉽게 말해 위의 설명한 방법대로 10진수를 2진수로 바꾼 것을 그대로 표현하는 것이다. 7.625라는 실수를 예로 들면, 2진수로 변환하면 111.101이 될 것이다. 컴퓨터는 이 결과를 그대로 사용한다.