진수 변환
2진수와 10진수 그리고 2^n 진수간의 변환에 대해 살펴보자.
10진수로 변환
8진수 12.34를 10진수로 변환해보자.
이전 포스팅에서 보았듯이, 8진수 12.34는 아래와 같이 나타낼 수 있다.
12.34(8)=1×81+2×80+3×8−1+4×8−2=8+2+3×81+2×821=8+2+0.375+0.03125=10.4062510
이번엔 16진수 AB.12를 10진수로 변환해보자.
AB.12(8)=A×161+B×160+1×16−1+2×16−2=10×161+11×160+1×16−1+2×16−2=160+11+1×161+2×1621=160+11+0.0625+0.0078125=171.070312510
10진수를 2진수로 변환
10진수 12.6875를 2진수로 변환해보자.
이때 정수부와 소수부를 나누어서 변환해야 한다.
먼저 12를 계속해서 2로 나누어가다가 나머지가 2미만이 되면 그 수를 최대 자리로 하면 된다.
12(10)12=6×2⋅⋅⋅06=3×2⋅⋅⋅03=1×2⋅⋅⋅11
여기서 나머지들을 역순으로 하면 아래와 같이 2진수가 된다.
12(10)=1100(2)
소수부의 경우 2로 나누는 것이 아니라 2를 곱해나간다.
계속해서 곱해나가면서 정수부로 진입하는 숫자가 2진수의 소수부가 된다.
이때 정수부를 제거하고 계속해서 2를 곱한다.
0.6875(10)0.6875×2=1.375⋅⋅⋅10.375×2=0.75⋅⋅⋅00.75×2=1.5⋅⋅⋅10.5×2=1⋅⋅⋅1
이때는 역순으로 하지않고 순서대로 변환한다.
0.6875(10)=0.1011(2)
이제 정수부와 소수부를 합치면 아래와 같은 결과가 나온다.
12.6875(10)=1100.1011(2)
2진수를 8진수, 16진수로 변환
8진수와 2진수를 잘 살펴보면 2진수 3개가 8진수 1개로 묶인다는 점을 발견할 수 있다.
8=23
위의 식을 보면 단박에 이해할 수 있을 것이다.
표로 나타내면 아래와 같다.
2진수 |
8진수 |
000 |
0 |
001 |
1 |
010 |
2 |
011 |
3 |
100 |
4 |
101 |
5 |
110 |
6 |
111 |
7 |
위에서 예시로 쓰인 값을 8진수로 변환해보자.
12.6875(10)=1100.1011(2)
이때도 정수부와 소수부로 나누어 원점을 기준으로 3자리씩 분할한다.
먼저 정수부 1100은 1과 100으로 분할하여 값을 확인해보자.
1(2)=1(8)100(2)=4(8)1100(2)=14(8)
그 다음은 소수부이다.
소수부 1011은 101과 1로 분할된다.
101(2)=5(8)100(2)=4(8)0.1011(2)=54(8)
정수부와 소수부를 합치면
12.6875(10)=1100.1011(2)=14.54(8)
위와 같이 변환됨을 확인할 수 있다.
16진수도 마찬가지로 4자리씩 묶어서 동일하게 변환하면 된다.
아래 표를 참고하자.
2진수 |
16진수 |
0000 |
0 |
0001 |
1 |
0010 |
2 |
0011 |
3 |
0100 |
4 |
0101 |
5 |
0110 |
6 |
0111 |
7 |
1000 |
8 |
1001 |
9 |
1010 |
A |
1011 |
B |
1100 |
C |
1101 |
D |
1110 |
E |
1111 |
F |