진법은 숫자의 자리수에 따라서 같은 수라도 가중치가 달라지는 방식입니다. 우리가 사용하는 10진수도 이 진법의 한종류입니다. 컴퓨터가 사용하는 2진수도 마찬가지구요.
보통 우리가 사용하는 10진수를 기준으로 진법들을 변환합니다. 10진수가아닌 다른 진수들의 변환 예를들어 3진수 - > 5진수 는 다음과 같은 식으로 변환 됩니다. 3진수->10진수->5진수
또, 우리가 컴퓨터공학을 공부하면서 많이 사용하는 진수간 변환 형태는 2^n진수 형태입니다. 이런 2^n형태는 일정한 규칙성이 있어서 규칙성을 알아두시면 편하게 진수변환을 할 수 있습니다.
진수 간 변환의 종류
x진수에서 10진수
10진수에서 x진수
2^n진수에서 2진수
2진수에서 2^n진수
x에서 y진수로
① 2진수에서 10진수로 변환하는 방법
각 자리수에 각 자리수의 가중치를 곱하는 방식입니다. 여기서 각 자리수의 가중치란 2^n(자리수-1)을 말합니다. 이 가중치는 10진수 표현방식이기 때문에 위 계산은 10진수로 나오게됩니다.
2진수 뿐아니라 3진수4진수....등 모든 x진수의 가중치는 x^n(자리수-1)이므로 위 식과 같은 방식으로 진수에 맞는 가중치를 각 자리수에 곱해주시면 10진수 표현을 구할 수 있습니다.
②10진수에서 2진수로 변환하는 방법
이 방법은 다음글을 참고하시면 됩니다.
2014/02/24 - [컴퓨터구조] - 10진수를 2진수로 변환하는 방법
③x진수를 y진수로 변환하는 방법
①과 ② 두가지 방법을 알면 x진수에서 y진수로 변환할 수 있습니다. x진수를 10진수로 바꾼후 10진수에서 원하는 진수로 바꾸는 방식입니다.
5진수를 2진수로 변환해 보기로 합시다.
10진수로 변환
2진수로변환
여기서 주의해야 할 점은 소수부분 처리입니다. 소수부분을 따로 계산해줘야 합니다. 위 링크 10진수를 2진수로 변환하는 방법 참조
110101000.01100110011001100110....... 입니다. 예제가 허접해서 무한 반복되는군요.
④2진수를 2^n진수로 변환
2진수,4진수8진수,16진수....등이 있습니다.
위 2진수를 4진수 8진수 16진수로 바꿔보겠습니다. 바꾸기 전에 기본적인 규칙을 설명해 드리겠습니다.
각 진수 간 가중치를 잘 살펴보세요. 4진수의 가중치는 2진수의 2자리를 합친 것에 해당합니다. 이 말은 2진수를 2자리씩 끊어서 생각하면 4진수의 한자리에 해당함을 알 수 있습니다. 같은 방법으로 8진수의 가중치는 2진수의 3자리의 가중치와 같음을 알 수 있고, 16진수는 4자리와 같습니다. 끊어 읽기를 잘하시면 2진수에서 2^n진수로 변환하는 방법은 쉽습니다.
1/2/3/1/1/1(4진수)
3/3/2/5(8진수)
⑤2^n진수에서 2진수로 변환 방법
이 경우는 두가지 방법이 있습니다.
③번 방법으로 10진수로 변환한 후 2진수로 바꾸는 방법
2진수에서 2^n진수의 변환 방법의 반대 방향으로 한번에 변환하는 방법(④번 방법을 역으로 이용)
두 번째 방법이 익숙해지면 2^n 진법 간 변환을 쉽게 할 수 있습니다.