이진수 (2진수) 변환
선수학습(1개)
요약
10진수를 2진수로 변환하는 방법과 2진수를 10진수로 변환하는 방법을 알아봅니다. 비트 연산을 이해하기 위한 필수 기초 지식입니다.
이진수 핵심 정리
아래에서 하나씩 배울 내용을 미리 정리한 표입니다.
| 개념 | 설명 | 예시 |
|---|---|---|
| 이진수 | 0과 1만 사용하는 숫자 체계 | 1101 |
| 10진수 → 2진수 | 2로 계속 나누고 나머지를 역순으로 읽기 | 13 → 1101 |
| 2진수 → 10진수 | 1인 자리의 자릿값을 모두 더하기 | 1101 → 8+4+1 = 13 |
| 자릿값 | 오른쪽부터 1, 2, 4, 8, 16, ... | 2⁰, 2¹, 2², 2³, ... |
| 비트 연산 | 2진수 자리별로 논리 연산 수행 | 0101 & 0011 = 0001 |
이진수란? 쌩기초
이진수(2진수) 는 0과 1만 사용하는 숫자 체계입니다. 컴퓨터는 전기 신호의 켜짐(1)과 꺼짐(0) 으로 동작하기 때문에, 모든 데이터를 이진수로 처리합니다.
우리가 일상에서 쓰는 숫자는 10진수로, 0부터 9까지 10개의 숫자를 사용합니다. 연산자를 배울 때 사용한 숫자들이 모두 10진수입니다.
| 진법 | 사용하는 숫자 | 예시 |
|---|---|---|
| 2진수 | 0, 1 | 1101 |
| 10진수 | 0 ~ 9 | 13 |
| 16진수 | 0 ~ 9, A ~ F | D |
10진수 → 2진수 변환 쌩기초
자릿값으로 이해하기
10진수에서 각 자리가 1의 자리, 10의 자리, 100의 자리인 것처럼, 2진수의 각 자리도 고유한 값을 가집니다. 오른쪽부터 1, 2, 4, 8, 16, ... 순서로 커지며, 이를 2의 거듭제곱 1이라고 합니다.

변환 방법: 2로 나누기
10진수를 2진수로 변환할 때는 2로 계속 나누고 나머지를 역순으로 읽습니다.

| 10진수 | 2진수 | 계산 |
|---|---|---|
| 1 | 0001 | 2⁰ = 1 |
| 2 | 0010 | 2¹ = 2 |
| 3 | 0011 | 2¹ + 2⁰ = 2+1 |
| 4 | 0100 | 2² = 4 |
| 5 | 0101 | 2² + 2⁰ = 4+1 |
| 6 | 0110 | 2² + 2¹ = 4+2 |
| 7 | 0111 | 2² + 2¹ + 2⁰ = 4+2+1 |
| 8 | 1000 | 2³ = 8 |
2진수 → 10진수 변환 기초
2진수의 각 자리는 2의 거듭제곱 값을 가집니다. 오른쪽부터 2⁰, 2¹, 2², 2³, ... 순서입니다.
| 자릿수 | 4번째 | 3번째 | 2번째 | 1번째 |
|---|---|---|---|---|
| 2의 거듭제곱 | 2³ | 2² | 2¹ | 2⁰ |
| 값 | 8 | 4 | 2 | 1 |
2진수를 10진수로 변환할 때는 1인 자리의 값을 모두 더합니다.
4비트 예시
| 2진수 | 계산 | 10진수 |
|---|---|---|
| 0101 | 2² + 2⁰ = 4+1 | 5 |
| 1010 | 2³ + 2¹ = 8+2 | 10 |
| 1111 | 2³ + 2² + 2¹ + 2⁰ = 8+4+2+1 | 15 |
8비트 예시
4비트로는 0부터 15까지만 표현할 수 있습니다. 더 큰 숫자를 표현하려면 자릿수를 늘려야 합니다. 8비트(8자리)를 사용하면 0부터 255까지 표현할 수 있습니다.
| 2진수 | 계산 | 10진수 |
|---|---|---|
| 0010 1010 | 2⁵ + 2³ + 2¹ = 32+8+2 | 42 |
| 0111 1111 | 2⁶ + 2⁵ + 2⁴ + 2³ + 2² + 2¹ + 2⁰ = 64+32+16+8+4+2+1 | 127 |
비트 연산에서의 활용 기초
비트 연산자를 이해하려면 이진수 변환이 필수입니다. 비트 연산은 2진수의 각 자리를 하나씩 비교하여 논리 연산을 수행합니다.
아래는 AND(&) 연산의 예시입니다. AND 연산은 두 비트가 모두 1일 때만 1, 나머지는 0이 됩니다.
각 자리를 비교하면: 0&0=0, 1&0=0, 0&1=0, 1&1=1 → 결과는 0001(1)입니다.
변수 선언이나 자료형이 아직 익숙하지 않다면 해당 페이지를 먼저 읽어보세요.
Java에서 진수 변환하기
Java는 진수 변환을 위한 내장 메서드를 제공합니다. 시험에서 직접 계산하는 것이 기본이지만, 코드에서 진수 변환이 등장할 때 이 메서드들을 알아두면 도움이 됩니다.
10진수 → 2진수
Integer.toBinaryString()은 10진수를 2진수 문자열로 변환합니다.
2진수 → 10진수
Integer.parseInt()에 두 번째 인자로 진법(2)을 지정하면 2진수 문자열을 10진수로 변환합니다.
| 메서드 | 기능 | 예시 |
|---|---|---|
Integer.toBinaryString(n) | 10진수 → 2진수 문자열 | Integer.toBinaryString(13) → "1101" |
Integer.parseInt(s, 2) | 2진수 문자열 → 10진수 | Integer.parseInt("1101", 2) → 13 |
다음 학습 안내
이진수 변환을 이해했다면 다음 내용을 학습해보세요.
Footnotes
-
2의 거듭제곱이란 2를 여러 번 곱한 값입니다. 2⁰=1, 2¹=2, 2²=4(2x2), 2³=8(2x2x2)처럼 계산합니다. ↩