진수 변환
- 2진수↔8진수
2→8
①2진수를 오른쪽부터 3자리씩 묶는다
ex) 0001 0101(2) → 000 010 101
②묶어준 영역을 10진수로 표현한다
ex) 000 = 0, 010 = 2, 101 = 5
③구한 수들을 더하지 말고, 영역 순서대로 합친다.
∴ 25(8)
8→2
①8진수 한 숫자당 2진수의 3자리 영역으로 간주한다.
ex) 60(8) → 6 = 110, 0 = 000
②구한 2진수 표현을 (숫자로 인식해서 더하지 말고 문자처럼 취급해서) 순서대로 영역을 합쳐준다.
ex) 110 000(2)
- 2진수↔10진수
2→10
①순서대로 2의 n제곱 해준다. (n은 숫자의 갯수, n>=0)
ex) 0110 0011(2) (보기 편하게 4개씩 끊어준 것)
2진수 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 |
변환식 2진수 x 2^n |
0 × 2⁷ | 1 × 2⁶ | 1 × 2⁵ | 0 × 2⁴ | 0 × 2³ | 0 × 2² | 1 × 2¹ | 1 × 2⁰ |
결과값 | 0 | 64 | 32 | 0 | 0 | 0 | 2 | 1 |
② 모두 더해준다.
ex) 64 + 32 + 2 + 1 = 99
∴99(10)
10→2
① 10진수 수를 못 나눌 때까지 ÷ 2 해준다.
ex) 60(10)
÷ | 60 | 나머지 |
2 | 30 | 0 |
2 | 15 | 0 |
2 | 7 | 1 |
2 | 3 | 1 |
2 | 1 | 1 |
2 | 0 | 1 |
② 마지막 순서의 몫 1개와 나머지를 아래서부터 위로 역순으로 읽어준다.
ex) 0111100(2)
- 2↔16
2→16
① 2진수를 오른쪽부터 4자리씩 나눈다.
ex) 11000001(2) → 1100/0001
② 나눈 수를 10진수 변환시켜준다.
ex) 1100 → 12, 0001 → 1
③ 10진수 변환시켜준 것을 16진수로 변환시켜준다.
16 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
ex) 12/1 = 12 → C, 1 → 1
∴ C1(16)
16→2
① 16진수를 수마다 나눠준다.
ex) FA(16) → F, A
② 나눠준 16진수를 10진수 변환시켜준다. (위 변환표 참고)
ex) F → 15, A → 11
③ 나눠준 10진수를 2진수 변환시켜준다.
ex) 15 → 01111, 11 → 1011
∴ 11111011(2)
- 8↔10
8→10
① 8진수 수마다 8의 n제곱 해준다. (n은 숫자의 갯수, n>=0)
ex) 74(8)
8진수 | 7 | 4 |
변환식 8진수 × 8^n |
7 × 8¹ | 4 × 8⁰ |
결과값 | 56 | 4 |
② 수를 모두 더해준다.
ex) 56 + 4 = 60
∴ 60(10)
10→8
① 10진수를 안 나눠질 때까지 ÷8 해준다.
ex) 60(10)
÷ | 60 | 나머지 |
8 | 7 | 4 |
② 마지막 순서의 몫 1개와 나머지를 아래서부터 위로 역순으로 읽어준다.
ex) 74(8)
※10진수 8 이상의 수는 8로 표현 불가하다.
ex) 8(10) = 10(8), 15(10) = 17(8), 16(10) = 20(8)
- 8↔16
8 → 16
① 8진수 수마다 2진수로 변환시켜준다.
ex) 57(8) → 5 = 101, 7 = 111
② 결과값 2진수를 8진수 수만큼 오른쪽부터 4자리씩 나눠준다.
101111 → 0010/1111
③ 4자리씩 끊어준 자리마다 2의 n제곱 해준다. (n>=0)
2진수 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 |
변환식 2진수 × 2^n |
0 × 2³ | 0 × 2² | 1× 2¹ | 0 × 2⁰ | 1 × 2³ | 1 × 2² | 1 × 2¹ | 1× 2⁰ |
결과값 | 0 | 0 | 2 | 0 | 8 | 4 | 2 | 1 |
④ 4자리마다의 결과값을 더해준다.
ex) 2, 8 + 4 + 2 + 1 = 15
⑤필요에 따라 16진수 변환시켜준다.
ex) 2/15 → 2B
∴2B(16)
16 → 8
① 16진수 수마다 2진수로 변환시켜준다.
ex) D/A(16) → D = 1101, A = 1010
② 결과값 2진수를 16진수 수만큼 오른쪽부터 3자리씩 나눠준다.
ex) 11011010 → 11/011/010
③ 3자리씩 끊어준 자리마다 2의 n제곱 해준다. (n>=0)
2진수 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
변환식 2진수 × 2^n |
1 × 2¹ | 1× 2⁰ | 0 × 2² | 1 × 2¹ | 1× 2⁰ | 0 × 2² | 1 × 2¹ | 0 × 2⁰ |
결과값 | 2 | 1 | 0 | 2 | 1 | 0 | 2 | 0 |
④ 3자리마다의 결과값을 더해준다.
ex) 2 + 1 = 3, 2 + 1 = 3, 2
⑤필요에 따라 8진수 변환시켜준다.
ex) 3/3/2
∴ 332(8)
- 10↔16
10 → 16
① 10진수를 안 나눠질 때까지 ÷16 해준다.
ex) 180(10)
÷ | 180 | 나머지 |
16 | 11 | 4 |
② 마지막 순서의 몫 1개와 나머지를 아래서부터 위로 역순으로 읽어준다.
ex) 114
③ 16진수로 변환시켜준다.
※15이하의 수는 16진수 한 수로 읽을 수 있다.
ex) 114 → B4
∴ B4(16)
16 → 10
① 16진수 수마다 16의 n제곱 해준다. (n은 숫자의 갯수, n>=0)
ex) 5AF(16)
② 수를 모두 더해준다.
16진수 | 5 | A | F |
변환식 16진수 × 16^n |
5 × 16² | A × 16¹ | F × 16⁰ |
10진수 | 1280 | 160 | 15 |
ex) 1280 + 160 + 15 = 1455
∴1455(10)
2진수→8진수, 2진수→16진수를 구할 때 자리를 얼마나 나누는 지 헷갈린다면 참고할 수 있는 내용을 덧붙이며..
8진수는 0~7까지 표현이 가능하다. 따라서 2진수로 7을 표현하면 111이다.
8진수로 표현할 수 있는 제일 큰 수가 7이고 그 수를 2진수로 표현한 것이 111이니,
8 이상의 수를 표현하려면 2진수로 4자리 이상의 수가 필요하다.
ex) 1000(2) = 10(8)
위 2진수를 보면 총 4자이니 3자씩 나누면 8진수로 두자리 수가 나오는 걸 알 수 있고
나눈 자리별로 진수 변환시켜주면 된다.
오른쪽부터 3자리씩 나누는데 나누다 만약 수가 3자리가 안된다면 부족한 자리부터 오른쪽으로 0을 추가해 주도록 한다.
16진수는 0~9까지의 수와 A~F까지의 문자로 로 총 16개의 수를 표현가능하다.
2⁴인 16가지 수를 표현하려면 적어도 2진수 4자리를 필요로 하기 때문에 4자리씩 끊어주는 것이다.
ex) 00010000(2) = 10(16)
위 2진수를 보면 총 8자이니 4개씩 나누면 16진수로 두자리 수가 나오는 걸 알 수 있고
나눈 자리별로 진수 변환시켜주면 된다.
오른쪽부터 4자리씩 나누는데 나누다 만약 수가 4자리가 안된다면 부족한 자리부터 오른쪽으로 0을 추가해 주도록 한다.