이진수 (2진수) 변환

코딩공통
읽는데 6분 소요
처음 쓰여진 날: 2026-02-03
마지막 수정일: 2026-03-21
조회수: 641

요약

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, 11101
10진수0 ~ 913
16진수0 ~ 9, A ~ FD

10진수 → 2진수 변환 쌩기초

자릿값으로 이해하기

10진수에서 각 자리가 1의 자리, 10의 자리, 100의 자리인 것처럼, 2진수의 각 자리도 고유한 값을 가집니다. 오른쪽부터 1, 2, 4, 8, 16, ... 순서로 커지며, 이를 2의 거듭제곱 1이라고 합니다.

text
코드 하이라이팅 중...
10진수를 2진수로 변환
13을 2진수로 변환하면 1101입니다. 8+4+1 = 13이므로 8, 4, 1 자리에 1을 넣습니다.

변환 방법: 2로 나누기

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

2로 나누기 방법
13을 2로 계속 나누고, 나머지를 아래에서 위로 읽으면 1101이 됩니다.
10진수2진수계산
100012⁰ = 1
200102¹ = 2
300112¹ + 2⁰ = 2+1
401002² = 4
501012² + 2⁰ = 4+1
601102² + 2¹ = 4+2
701112² + 2¹ + 2⁰ = 4+2+1
810002³ = 8


2진수 → 10진수 변환 기초

2진수의 각 자리는 2의 거듭제곱 값을 가집니다. 오른쪽부터 2⁰, 2¹, 2², 2³, ... 순서입니다.

자릿수4번째3번째2번째1번째
2의 거듭제곱2⁰
8421

2진수를 10진수로 변환할 때는 1인 자리의 값을 모두 더합니다.

text
코드 하이라이팅 중...

4비트 예시

2진수계산10진수
01012² + 2⁰ = 4+15
10102³ + 2¹ = 8+210
11112³ + 2² + 2¹ + 2⁰ = 8+4+2+115

8비트 예시

4비트로는 0부터 15까지만 표현할 수 있습니다. 더 큰 숫자를 표현하려면 자릿수를 늘려야 합니다. 8비트(8자리)를 사용하면 0부터 255까지 표현할 수 있습니다.

2진수계산10진수
0010 10102⁵ + 2³ + 2¹ = 32+8+242
0111 11112⁶ + 2⁵ + 2⁴ + 2³ + 2² + 2¹ + 2⁰ = 64+32+16+8+4+2+1127


비트 연산에서의 활용 기초

비트 연산자를 이해하려면 이진수 변환이 필수입니다. 비트 연산은 2진수의 각 자리를 하나씩 비교하여 논리 연산을 수행합니다.

아래는 AND(&) 연산의 예시입니다. AND 연산은 두 비트가 모두 1일 때만 1, 나머지는 0이 됩니다.

c
코드 하이라이팅 중...
text
코드 하이라이팅 중...

각 자리를 비교하면: 0&0=0, 1&0=0, 0&1=0, 1&1=1 → 결과는 0001(1)입니다.

변수 선언이나 자료형이 아직 익숙하지 않다면 해당 페이지를 먼저 읽어보세요.


Java에서 진수 변환하기

Java는 진수 변환을 위한 내장 메서드를 제공합니다. 시험에서 직접 계산하는 것이 기본이지만, 코드에서 진수 변환이 등장할 때 이 메서드들을 알아두면 도움이 됩니다.

10진수 → 2진수

Integer.toBinaryString()은 10진수를 2진수 문자열로 변환합니다.

java
코드 하이라이팅 중...

2진수 → 10진수

Integer.parseInt()에 두 번째 인자로 진법(2)을 지정하면 2진수 문자열을 10진수로 변환합니다.

java
코드 하이라이팅 중...
메서드기능예시
Integer.toBinaryString(n)10진수 → 2진수 문자열Integer.toBinaryString(13)"1101"
Integer.parseInt(s, 2)2진수 문자열 → 10진수Integer.parseInt("1101", 2)13

다음 학습 안내

이진수 변환을 이해했다면 다음 내용을 학습해보세요.

  • 16진수 — 2진수를 4자리씩 묶어 간결하게 표현하는 방법
  • ASCII 코드 — 문자를 숫자(이진수)로 표현하는 규칙
  • 비트 연산자 — AND, OR, XOR, NOT, 시프트 연산

Footnotes

  1. 2의 거듭제곱이란 2를 여러 번 곱한 값입니다. 2⁰=1, 2¹=2, 2²=4(2x2), 2³=8(2x2x2)처럼 계산합니다.