컴퓨터
[컴퓨터] 쉽게 이해하는 진수 변환: 2진수, 8진수, 10진수, 16진수 간의 상호 변환 방법
wony-wony
2024. 10. 20. 23:25
저번 포스팅에서는 진수의 기초개념에 대해 알아보았다.
이번에는 '진수의 변환'에 대해 다뤄보려 한다.
10진수를 2진수로 변환
$26=11010_{2}$
단계 1 : 주어진 값을 2로 나누고 그 나머지를 기록한다.
단계 2 : 몫이 0이 아니면 계속해서 새로운 몫을 2로 나누고 그 나머지는 기록한다.
단계 3 : 몫이 0이면 원래 값의 2진 표현은 나머지가 기록되는 순서대로 왼쪽에서 오른쪽으로 나열한다.

10진수의 소수를 2진수로 변환
$0.625=0.101_{2}$
단계 1 : 10진수에 2를 곱하여 나온 결과에서 정수부분으로 자리 올림수와 소수점 아래 부분을 따로 보관한다.
단계 2 : 단계 1에서 소수 부분이 0이면 3단계로 넘어가고, 아니면 소수점 아래 부분을 다시 새로운 10진수로 하여 단계 1을 반복한다.
단계 3 : 구해진 정수 부분으로서의 자리 올림수를 순서대로 나열한다.

2진수, 8진수, 16진수 간 상호관계
수식 $8=2^3, 16=2^4$이 만족하므로 2진수로 표현된 수를 각각 8진수, 16진수로 표현하는데 쉽게 변환이 가능하다.
변환의 원리는,
소수점을 기준으로 정수 부분은 왼쪽으로, 소수 부분은 오른쪽으로
8진수로의 변환은 3자리씩, 16진수로의 변환은 4자리씩 묶어 변환한다.

위의 예시로 풀어서 설명을 해보자면,
8진수로 변환하는 경우,
- 정수 부분(11010)에서 오른쪽에서부터 3자리씩 묶는다. 11010 -> 011 010 (맨 앞에 자리가 부족하면 0을 채워준다.)
- 소수점 아래(1010)에서도 마찬가지로 세자리씩 묶으면 1010 -> 101 000 이 된다.
이제 묶은 각각의 세자리 2진수를 8진수로 바꾸면,
- $011_2=3_8$
- $010_2=2_8$
- 소수점 아래의 $101_2=5_8$
따라서 $32.5_8$이 된다.
16진수로 변환하는 과정도 4자리씩 묶는 것만 다르고 과정은 동일하다.