728x90
728x90
진법 간 변환
- 사람이 사용하는 수로 컴퓨터에 데이터를 입력하거나 연산을 요구하면, 컴퓨터는 자신이 사용하는 2진수로 변환하여 처리하며, 데이터가 방대해짐에 따라 8진수나 16진수로 표현하기도 한다.

- 10진수와 2진수는 어떤 진법으로든 변환이 가능하지만, 8진수와 16진수는 서로 직접 변환이 불가능하다.
- 그러므로 8진수를 16진수로, 또는 16진수를 8진수로 변환하기 위해서는 먼저 10진수나 2진수로 변환한 후에 8진수나 16진수로 변환해야 한다.
[1] 10진수 → 2진수 / 8진수 / 16진수
- 10진 실수를 2진수, 8진수 또는 16진수로 변환할 때는 정수부와 소수부를 변환하는 방법이 다르다.
정수부 구하기
- 몫이 0이 될 때까지 변환하려는 기수로 나누면서 각 단계마다 나오는 나머지를 나열하는 방식으로 구한다.
- 가장 먼저 얻은 나머지는 변환된 진수의 가장 오른쪽 자리(정수부 최하위 자리)에 위치
- 가장 나중에 얻은 나머지는 변환된 진수의 가장 왼쪽 자리(정수부 최상위 자리)에 위치
소수부 구하기
- 소수부가 0이 될 때까지 변환하려는 기수로 곱하면서 각 단계마다 나오는 정수부의 값을 나열하는 방식으로 구한다.
- 가장 먼저 얻은 정숫값은 변환된 진수 표현의 소수점에 가장 가까운 자리(소수부 최상위 자리)에 위치
- 가장 나중에 얻은 정수값은 가장 멀리 있는 자리(소수부 최하위 자리)에 위치
- 소수부가 0이 되지 않을 때가 있는데, 이때는 똑같은 소수부가 나올 때까지 변환하려는 기수를 곱하면서 각 단계마다 나오는 정수부의 값을 나열한다.
정리

예제 1 : 를 2진수로 변환하기
![]() |
|
정수부 | 소수부 |
![]() |
![]() |
![]() |
예제 2 : 를 ① 2진수, ② 8진수, ③ 16진수로 변환하기
① 10진수 → 2진수
![]() |
|
정수부 | 소수부 |
![]() |
![]() |
![]() |
② 10진수 → 8진수
![]() |
|
정수부 | 소수부 |
![]() |
![]() |
![]() |
③ 10진수 → 16진수
![]() |
|
정수부 | 소수부 |
![]() |
![]() |
![]() |
[2] 2진수 / 8진수 / 16진수 → 10진수
- '진법별 표현' 게시글(https://dev-astra.tistory.com/138)에서 살펴본 진법별 표현 방법을 이용하면 2진수, 8진수, 16진수를 10진수로 변환할 수 있다.
- 2진수, 8진수, 16진수를 각각의 기수와 자릿수로 표현한 식을 계산하면 10진수로 변환된다.
① 2진수 → 10진수
예제 : 를 10진수로 변환하기
② 8진수 → 10진수
예제 : 를 10진수로 변환하기
③ 16진수 → 10진수
예제 : 를 10진수로 변환하기
[3] 2진수 ↔ 8진수 / 16진수
- 2진수를 8진수/16진수로 변환하거나 8진수/16진수를 2진수로 변환하려면 먼저 10진수로 변환한 다음 다른 진수로 변환하는 것이다.
- 하지만 이보다 더 간단한 방법은 비트(Bit, Binary Digit) 단위로 나누어 변환하는 것이다.
- 비트(Bit) : 컴퓨터에서 사용하는 가장 작은 정보 표현 단위로, 0 또는 1을 표현할 수 있다.
① 8진수 ↔ 2진수
8진수 → 2진수
- 8진수는 0과 7까지의 숫자로 표현한 수로, 이 범위에서 가장 큰 수인 7을 2진수로 변환하면 로 3비트가 필요하다.
- 한 자리의 8진수를 2진수로 표현하려면 최대 3비트가 필요하다.
- 그러므로 8진수를 구성하는 각 자리의 숫자를 3비트로 구성된 2진수로 표현하면 8진수를 2진수로 변환할 수 있다.
예제 : 을 2진수로 변환하기

2진수 → 8진수
- 반대로 2진수를 8진수로 변환할 때는 2진수를 소수점 기준으로 3비트씩 한 단위로 묶고, 각 단위를 10진수로 표현하여 8진수로 변환한다.
예제 : , 을 8진수로 변환하기


② 16진수 ↔ 2진수
16진수 → 2진수
- 16진수는 0과 9까지의 수, 그리고 10부터 15까지의 수를 의미하는 부터 까지의 영문 대문자를 이용해 표현한 수로, 이 범위에서 가장 큰 수인 15()를 2진수로 변환하면 로 4비트가 필요하다.
- 한 자리의 16진수를 2진수로 표현하려면 최대 4비트가 필요하다.
- 그러므로 16진수를 구성하는 각 자리의 숫자를 4비트로 구성된 2진수로 표현하면 16진수를 2진수로 변환할 수 있다.
예제 : 을 2진수로 변환하기

2진수 → 16진수
- 반대로 2진수를 16진수로 변환할 때는 2진수를 소수점 기준으로 4비트씩 한 단위로 묶고, 각 단위를 10진수로 표현하여 16진수로 변환한다.
예제 : , 을 16진수로 변환하기


[4] 8진수 ↔ 16진수
- 8진수와 16진수 간의 직접적인 변환은 불가능하기 때문에 10진수 또는 2진수로의 변환을 거쳐야 한다.
① 8진수 → 2진수 → 16진수
예제 : 을 16진수로 변환하기

② 16진수 → 2진수 → 8진수
예제 : 를 8진수로 변환하기

728x90
728x90
'Mathematics > 이산 수학' 카테고리의 다른 글
[이산 수학] 조건 명제 (0) | 2022.10.02 |
---|---|
[이산 수학] 논리 연산자 (0) | 2022.10.02 |
[이산 수학] 명제 (0) | 2022.10.02 |
[이산 수학] 컴퓨터에서의 수의 표현과 연산 (0) | 2022.09.27 |
[이산 수학] 진법별 사칙연산 (0) | 2022.09.26 |
[이산 수학] 진법별 표현 (0) | 2022.09.20 |
[이산 수학] 수의 연산 (0) | 2022.09.19 |
[이산 수학] 수의 체계 (0) | 2022.09.15 |