십진수, 이진수를 변환하는 법 (8, 16진수)

Rowan Lee·2023년 3월 17일

수학

목록 보기
2/4

십진수 -> 이진수 변환


십진수가 정수일때

2를 반복적으로 나눠주며 나머지를 거꾸로 기록하면 된다.

ex) 10 -> 1010
10 / 2 = 5 ... 0
5 / 2 = 2 ... 1
2 / 2 = 1 ... 0
이를 거꾸로 나열하면 1010이 된다.

십진수가 소수일때

20.20을 이진수로 변환해보자.
일단 정수부와 소수부를 분리한다. (20 + 0.20)

20는 정수 십진수의 변환과 동일하게 구한다.
20 / 2 = 10 ... 0
10 / 2 = 5 ... 0
5 / 2 = 2 ... 1
2 / 2 = 1 ... 0

20 = 10100

0.20의 경우 2를 곱한 결과값의 일의 자리수를 기록한다. 단. 일의 자리가 이진수이기 떄문에 1이 생길때마다 버린다.

0.2 x 2 = 0.4
0.4 x 2 = 0.8
0.8 x 2 = 1.6
0.6 x 2 = 1.2
0.2 x 2 = 0.4 (여기부턴 반복된다)

즉 0.2 = 0.0011 0011 0011이 순환되는 구조이다.

20.20 = 10100 + 0.0011 0011 0011.... = 10110.00110011...

이렇게 구할 수 있다.

순환되지 않는 경우엔 어떻게 될까? 동일하게 수가 없어질때 까지 계산해준다.
0.25를 계산해보자

0.25 x 2 = 0.5
0.5 x 2 = 1.0

즉 0.01이 나오게 된다.

참고로 이 변환법들은 모든 진수변환에 대해 통용된다.

십진수 -> 이진수 변환


각 자리에 해당하는 2^n을 곱해 전부 더해준다.

10100 -> 1 x 2^4 + 1 x 2^2 = 20

이 또한 모든 진수변환에 통용된다.

이진수 -> 2^n 진수변환


10 = 2x5이기에 변환이 어려웠지만 이진수에서 2^n진수 (4 8 16)등으로 변환하는 작업은 간단하다.

20을 8진수 16진수로 각각 변환해보자.

20 = 10100(이진법)

이진수들을 각진수의 비트수에 맞춰 자른다. 이후 그에 대응하는 기호로 변환해주면 끝이다.

  • 8(2^3)진수

    	010 100 (2진수) -> 2 4 (8진수)
  • 16(2^4)진수 (0~9와 A~F로 표현)

    	0001 0100 (2진수) -> 1 4 (16진법)
profile
CS/Software Engineer

0개의 댓글