개념 정리
진법 변환과 2진수 연산
단원 개요
컴퓨터의 기초 언어인 2진법, 8진법, 10진법, 16진법 상호 변환 및 비트 단위 덧셈·뺄셈·시프트 연산의 하드웨어적 원리를 학습합니다.선수 개념
필수 키워드:트랜지스터와 스위칭 소자신호 무결성과 노이즈 내성2진법(Binary)정보의 기본 단위비트(Bit, Binary Digit)바이트(Byte)10진수 ➔ 2진수 변환정수부역순(아래에서 위로)소수부
1
컴퓨터가 2진수를 사용하는 이유와 비트·바이트 체계
•
트랜지스터와 스위칭 소자: 현대 디지털 컴퓨터의 하드웨어는 수십억 개의 미세한 반도체 트랜지스터(MOSFET)로 구성됩니다. 트랜지스터는 전압의 높음(High, 약 또는 )과 낮음(Low, )이라는 두 가지 상태만을 구분하여 작동합니다.
•
신호 무결성과 노이즈 내성: 만약 10진수처럼 전압을 10단계()로 나누어 인식한다면, 전자기적 잡음(Noise)이나 온도 변화로 인해 전압이 조금만 흔들려도 데이터가 왜곡됩니다. 반면 2진법(Binary)은 임계 전압을 기준으로 켜짐(On, 1)과 꺼짐(Off, 0)만 판별하므로 신뢰성이 압도적으로 높고 논리 회로 설계가 단순해집니다.
•
정보의 기본 단위:
•
비트(Bit, Binary Digit): 0 또는 1 하나를 저장하는 최소 정보 단위입니다. 비트로 표현할 수 있는 고유한 상태의 개수는 개입니다.
•
바이트(Byte): 8개의 비트를 묶은 단위로, 컴퓨터 메모리 주소 지정의 기본 단위입니다 (가지 값 표현 가능).
핵심 원리
n개의 비트가 모이면 총 2^n개의 서로 다른 정보를 표현할 수 있습니다. 특히 8비트 = 1바이트(2^8 = 256가지)와 2^10 = 1,024(1 KiB 기준)는 컴퓨터 공학 계산의 가장 중요한 기준값입니다.2
진법 간 상호 변환 (2진법, 8진법, 10진법, 16진법)
1
10진수 ➔ 2진수 변환:
•
정수부: 10진수를 2로 몫이 0이 될 때까지 반복해서 나누고, 나온 나머지들을 역순(아래에서 위로)으로 적습니다. 또는 가중치()의 합으로 분해하여 해당 자리에 1을 채웁니다.
•
소수부: 소수 부분에 2를 반복해서 곱하며 결과의 정수 부분(0 또는 1)을 순서대로(위에서 아래로) 기록합니다 (예: ).
2
2진수 ➔ 8진수 / 16진수 고속 변환:
•
2진수는 자릿수가 너무 길어 사람이 읽고 쓰기 불편하므로, 과 의 관계를 이용해 압축 표기합니다.
•
8진수(Octal) 변환: 소수점을 기준으로 2진수를 3비트씩 묶어 로 치환합니다.
•
16진수(Hexadecimal) 변환: 소수점을 기준으로 2진수를 4비트씩 묶어 및 로 치환합니다.
•
예: , 8진수로는 .
학습 도움말
2진수 4자리 묶음의 가중치 '8-4-2-1'을 외워두면 10진수를 거치지 않고도 2진수와 16진수를 1초 만에 암산으로 상호 변환할 수 있습니다.풀이
1) 214를 2의 거듭제곱 합으로 분해하면 214 = 128 + 64 + 16 + 4 + 2 = 2⁷ + 2⁶ + 2⁴ + 2² + 2¹입니다.
따라서 8비트 2진수로 나타내면 11010110₂입니다.
2) 11010110₂를 4비트씩 나누면 1101₂(8+4+1=13=D)와 0110₂(4+2=6)이므로 16진수는 0xD6(D6₁₆)입니다.
3) 1011.01₂ = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ + 0×2⁻¹ + 1×2⁻² = 8 + 0 + 2 + 1 + 0 + 0.25 = 11.25₁₀입니다.
3
실무·시스템 적용 사례 및 비트 시프트 연산 포인트
•
메모리 주소와 웹 컬러 코드:
•
디버거에서 확인하는 메모리 주소(
0x7fff5fbff8c0), 네트워크 MAC 주소(00:1A:2B:3C:4D:5E), IPv6 주소는 모두 바이트 단위를 직관적으로 표현하기 위해 16진수를 사용합니다.•
웹 디자인의 RGB 색상 코드
#FF5733은 Red(FF = 255), Green(57 = 87), Blue(33 = 51) 각각 1바이트(8비트)씩 총 24비트 트루컬러를 16진수로 표현한 것입니다.•
비트 시프트(Bitwise Shift) 연산을 통한 고속 곱셈·나눗셈:
•
CPU에서 일반 곱셈·나눗셈 명령어보다 비트 이동 명령어가 훨씬 빠르게(1클럭 내외) 실행됩니다.
•
왼쪽 시프트(
n << k): 비트를 왼쪽으로 칸 밀고 빈자리를 0으로 채우며, 수학적으로 과 같습니다.•
오른쪽 시프트(
n >> k): 비트를 오른쪽으로 칸 밀며, 양수 기준 (몫 연산)과 같습니다.핵심 요약
- ✓컴퓨터는 하드웨어 신호의 안정성(Noise 내성)을 위해 전압의 On/Off에 대응하는 2진수를 기본 단위로 사용한다.
- ✓2진수를 3비트씩 묶으면 8진수, 4비트씩 묶으면 16진수(0~9, A~F)로 즉시 변환할 수 있다.
- ✓1바이트(8비트)는 16진수 두 자리(0x00 ~ 0xFF)와 정확히 1:1 대응되어 메모리 주소와 컬러 코드 표기에 쓰인다.
- ✓왼쪽 시프트(<< k)는 2^k배 곱셈, 오른쪽 시프트(>> k)는 2^k로 나눈 몫 연산과 동일하여 성능 최적화에 활용된다.