2025. 3. 28. 12:45ㆍ소프트웨어/기초
✅ 3장. 2진수(Binary) 이해하기
📌 2진수란?
2진수(Binary)는 0과 1 두 가지 숫자만 사용하는 수 체계입니다.
기수(Base)가 2이기 때문에 사용할 수 있는 숫자는 단 두 개: 0과 1입니다.
💡 왜 2진수가 중요할까요?
컴퓨터는 전기 신호(전류의 흐름 유무)로 작동합니다.
- 전기가 흐르면 → 1
- 전기가 흐르지 않으면 → 0
이처럼 컴퓨터는 전기를 켜고(1), 끄는(0) 방식으로 모든 데이터를 처리하기 때문에,
컴퓨터 내부에서는 모든 정보가 2진수로 저장되고 계산됩니다.
🔢 예시: 10진수 5 → 2진수 변환
10진수 5를 2진수로 변환하려면, 2로 나누는 과정을 반복하고 나머지를 위에서 아래로 기록합니다.
변환 표:
단계 | 나눗셈 | 몫 | 나머지 |
① | 5 ÷ 2 | 2 | 1 |
② | 2 ÷ 2 | 1 | 0 |
③ | 1 ÷ 2 | 0 | 1 |
→ 나머지를 아래에서 위로 읽으면: 1 0 1 → 2진수 101
🔎 Tip: 이처럼 10진수를 2진수로 바꿀 땐, 나누고 나머지를 기록하며 역순으로 읽는다는 것을 기억하세요.
🔁 2진수 ↔ 10진수 변환 방법
✅ 1) 10진수 → 2진수
- 2로 계속 나눔
- 나머지를 위에서 아래 방향으로 표에 적음
- 나머지를 아래에서 위로 읽으면 2진수
✅ 2) 2진수 → 10진수
각 자릿수에 2의 거듭제곱(2ⁿ)을 곱한 값을 더합니다.
오른쪽 끝이 0번 자리입니다.
예: 1011₂ → 10진수 변환
자리 위치 | 값 | 계산식 | 결과 |
3 | 1 | 1 × 2³ = 8 | 8 |
2 | 0 | 0 × 2² = 0 | 0 |
1 | 1 | 1 × 2¹ = 2 | 2 |
0 | 1 | 1 × 2⁰ = 1 | 1 |
합계 | 11 |
🧩 비트와 바이트의 개념
용어 | 설명 |
Bit (binary digit) | 2진수의 1자리(0 또는 1) |
Byte | 8비트 = 1바이트 (컴퓨터 저장의 최소 단위) |
예를 들어 00001010처럼 8자리 2진수는 1바이트입니다.
→ 00001010₂ = 10₁₀
💡 컴퓨터의 메모리, 파일 크기, 데이터 단위는 모두 바이트를 기준으로 측정됩니다.
🧑💻 프로그래밍에서의 2진수 표기법
다양한 언어에서는 2진수라는 것을 명확히 구분하기 위해 접두사를 사용합니다.
언어 | 표기 예시 | 설명 |
Python | 0b1010 | 0b는 2진수 접두사 |
JavaScript | 0b1010 | ES6 이상에서 지원 |
C (표준) | 지원 X | 직접 2진수 리터럴 없음 |
C (GCC 확장) | 0b1010 | GCC 컴파일러에서만 지원됨 |
⚠️ C언어 표준에는 2진수 리터럴이 없으며, 대신 8진수(0)나 16진수(0x)를 더 자주 사용합니다.
🧠 보너스: 음수 표현 방식 (기초 소개)
컴퓨터는 음수를 표현할 때 2의 보수법을 사용합니다.
이 내용은 [보너스 개념] 장에서 더 자세히 다루지만, 간단히 말하면:
- +5 → 00000101
- -5 → 11111011 (2의 보수)
이는 연산을 단순화하고 하드웨어 구현을 효율적으로 하기 위한 방법입니다.
📝 연습문제
Q1. 10진수 13을 2진수로 변환하세요.
Q2. 2진수 1101을 10진수로 변환하세요.
Q3. 8비트로 표현된 2진수 00001111은 어떤 10진수일까요?
✅ 정답:
- Q1 → 1101
- Q2 → 8 + 4 + 0 + 1 = 13
- Q3 → 8 + 4 + 2 + 1 = 15
🔗 변환 계산기 링크
실제 변환 과정을 자동으로 확인하고, 입력값을 바꿔 연습해볼 수 있어요!
📊 시각 자료: 2진수 자릿값 시각화 (텍스트형)
2진수: 1 0 1 1
위치: 3 2 1 0
↓ ↓ ↓ ↓
값: 8 + 0 + 2 + 1 = 11
👉 각 자리의 지수(2ⁿ) 개념을 익히면 진수 변환이 한결 쉬워집니다!
📘 요약
항목 | 내용 |
2진수 정의 | 0과 1만 사용하는 수 체계 |
변환 원리 | 나눗셈과 자리값 계산 |
프로그래밍 표기 | 0b 접두사 사용 |
관련 개념 | 비트, 바이트, 2의 보수 |
실습 추천 | 변환 계산기 + 연습문제 포함 |
'소프트웨어 > 기초' 카테고리의 다른 글
누구나 쉽게 배우는 진수 - 5장. 16진수(Hexadecimal) 이해하기 (0) | 2025.03.28 |
---|---|
누구나 쉽게 배우는 진수 - 4장. 8진수(Octal) 이해하기 (0) | 2025.03.28 |
누구나 쉽게 배우는 진수 - 2. 왜 다양한 진수가 필요할까요? (0) | 2025.03.28 |
누구나 쉽게 배우는 진수 - 1. 진수란 무엇인가요? (0) | 2025.03.28 |
부동 소수점 - 6. 정리 및 실전 예제 (부동 소수점 & IEEE 754 표준) (0) | 2025.02.08 |