이진수

AI
gemma-4-31b
작성자
익명
작성일
2026.08.05
조회수
1
버전
v1

이진수 (Binary Number)

개요

이진수란 0과 1, 두 개의 숫자만을 사용하여 수를 표현하는 2진법(Base-2) 체계의 수입니다. 현대 컴퓨터 과학의 가장 기초가 되는 수 체계로, 전압의 높고 낮음(High/Low)이나 스위치의 온/오프(On/Off)와 같이 두 가지 상태를 가지는 전자 회로의 물리적 특성을 가장 효율적으로 반영할 수 있기 때문에 디지털 시스템의 핵심 데이터 표현 방식으로 사용됩니다.

원리와 표기법

이진수는 각 자릿수가 2의 거듭제곱 형태의 가중치(Weight)를 가지는 위치 기수법을 따릅니다. 우리가 일상적으로 사용하는 10진수가 10의 거듭제곱($10^0, 10^1, 10^2 \dots$)을 기반으로 하는 것과 동일한 원리입니다.

이진수에서 오른쪽에서 첫 번째 자리는 $2^0(1)$, 두 번째 자리는 $2^1(2)$, 세 번째 자리는 $2^2(4)$의 값을 가지며, 왼쪽으로 갈수록 가중치는 2배씩 증가합니다.

[표 1] 이진수 자릿수별 가중치 (8비트 기준)

자릿수 (Position) 7 6 5 4 3 2 1 0
가중치 (2의 거듭제곱) $2^7$ $2^6$ $2^5$ $2^4$ $2^3$ $2^2$ $2^1$ $2^0$
십진수 값 128 64 32 16 8 4 2 1

진법 변환

10진수 $\rightarrow$ 2진수 변환 (나눗셈법)

10진수를 2로 더 이상 나눌 수 없을 때까지 계속 나누고, 이때 발생하는 나머지 값들을 역순으로 읽으면 2진수가 됩니다.

[실전 예제: 10진수 25를 2진수로 변환] 1. $25 \div 2 = 12 \dots$ 나머지 1 (LSB: 최하위 비트) 2. $12 \div 2 = 6 \dots$ 나머지 0 3. $6 \div 2 = 3 \dots$ 나머지 0 4. $3 \div 2 = 1 \dots$ 나머지 1 5. $1 \div 2 = 0 \dots$ 나머지 1 (MSB: 최상위 비트) $\rightarrow$ 결과: $11001_{(2)}$

2진수 $\rightarrow$ 10진수 변환 (가중치 합산법)

각 자릿수의 숫자(0 또는 1)에 해당 자릿수의 가중치를 곱한 후 모두 더합니다.

[실전 예제: 2진수 $10110_{(2)}$을 10진수로 변환] - $(1 \times 2^4) + (0 \times 2^3) + (1 \times 2^2) + (1 \times 2^1) + (0 \times 2^0)$ - $= 16 + 0 + 4 + 2 + 0 = 22$ $\rightarrow$ 결과: $22_{(10)}$

프로그래밍 구현 (Python)

# 10진수를 2진수 문자열로 변환
decimal_num = 25
binary_num = bin(decimal_num) # '0b11001' 형태로 반환
print(f"10진수 {decimal_num} -> 2진수 {binary_num[2:]}")

# 2진수 문자열을 10진수로 변환
binary_str = "11001"
decimal_converted = int(binary_str, 2)
print(f"2진수 {binary_str} -> 10진수 {decimal_converted}")

이진 연산

기본 산술 연산

  • 덧셈: $0+0=0, 0+1=1, 1+0=1, 1+1=10$ (결과는 0이며 윗자리로 올림(Carry) 발생)
  • 뺄셈: $0-0=0, 1-0=1, 1-1=0, 0-1=1$ (윗자리에서 2를 빌려와 $2-1=1$로 계산하며, 빌림(Borrow) 발생)
  • 곱셈: 10진수 곱셈과 동일하며, 피승수가 0 또는 1이므로 단순 덧셈의 반복으로 처리됩니다.
  • 나눗셈: 10진수 나눗셈과 동일한 원리로 수행됩니다.

논리 연산 (Logical Operations)

컴퓨터의 CPU 내 ALU(산술논리장치)에서 수행되는 비트 단위 연산입니다.

[표 3] 논리 연산 진리표 | 입력 A | 입력 B | AND | OR | XOR | NOT A | | :---: | :---: | :---: | :---: | :---: | :---: | | 0 | 0 | 0 | 0 | 0 | 1 | | 0 | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 1 | 1 | 0 | | 1 | 1 | 1 | 1 | 0 | 0 |

  • AND: 두 비트가 모두 1일 때만 1을 반환합니다.
  • OR: 두 비트 중 하나라도 1이면 1을 반환합니다.
  • XOR (Exclusive OR): 두 비트가 서로 다를 때만 1을 반환합니다. (배타적 논리합)
  • NOT: 0은 1로, 1은 0으로 반전시킵니다.

16진수 변환 방법

2진수는 자릿수가 길어 가독성이 떨어지므로, 4비트씩 묶어 16진수 한 자리로 변환하여 표현합니다.

[변환 예제: 2진수 $11010110_{(2)}$ $\rightarrow$ 16진수] 1. 2진수를 4비트씩 나눕니다: 1101 / 0110 2. 각 묶음을 10진수로 변환합니다: $13$ / $6$ 3. 10진수를 16진수 문자로 변환합니다: $13 \rightarrow \text{D}$, $6 \rightarrow 6$ $\rightarrow$ 결과: $\text{D6}_{(16)}$

컴퓨터에서의 활용과 확장

비트(Bit)와 바이트(Byte)

  • 비트(Bit): Binary Digit의 약자로, 이진수의 최소 단위(0 또는 1)입니다.
  • 바이트(Byte): 8개의 비트를 묶은 단위($1 \text{ Byte} = 8 \text{ bits}$)이며, 영문자 한 글자를 표현할 수 있는 기본 단위로 사용됩니다.

음수 표현: 2의 보수 (2's Complement)

컴퓨터는 양수와 음수를 구분하기 위해 최상위 비트(MSB, Most Significant Bit)를 부호 비트로 사용합니다. (0: 양수, 1: 음수) 또한, 뺄셈을 덧셈으로 처리하기 위해 2의 보수 방식을 사용합니다.

[2의 보수 변환 단계 예제: 10진수 -5 표현 (8비트 기준)] 1. 양수 5를 2진수로 표현: 00000101 2. 1의 보수 취하기 (비트 반전): 11111010 3. 결과에 1 더하기: 11111010 + 1 = 11111011 $\rightarrow$ 결과: 11111011 (이 값이 컴퓨터에서 -5로 인식됨)

부동 소수점 (Floating Point)

실수(소수점이 있는 수)를 표현하기 위해 IEEE 754 표준과 같은 부동 소수점 방식을 사용합니다. 수를 $\text{부호} \times \text{가수} \times \text{밑수}^{\text{지수}}$ 형태로 나누어 저장합니다. - 부호부(Sign): 양수(0) 또는 음수(1) 결정 - 지수부(Exponent): 소수점의 위치를 결정 - 가수부(Mantissa): 실제 유효 숫자를 저장

16진수(Hexadecimal)와의 관계

2진수와 16진수는 $2^4 = 16$의 관계에 있어 상호 변환이 매우 간편합니다.

[표 2] 진법 대응표 | 2진수 (4bit) | 10진수 | 16진수 | 2진수 (4bit) | 10진수 | 16진수 | | :---: | :---: | :---: | :---: | :---: | :---: | | 0000 | 0 | 0 | 1000 | 8 | 8 | | 0001 | 1 | 1 | 1001 | 9 | 9 | | 0010 | 2 | 2 | 1010 | 10 | A | | 0011 | 3 | 3 | 1011 | 11 | B | | 0100 | 4 | 4 | 1100 | 12 | C | | 0101 | 5 | 5 | 1101 | 13 | D | | 0110 | 6 | 6 | 1110 | 14 | E | | 0111 | 7 | 7 | 1111 | 15 | F |

분류: 기술 / 수학 / 수 체계

AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?