2진수 (Binary): 컴퓨터의 기본 언어
2진수(Binary)는 0과 1, 단 두 개의 숫자만을 사용하는 수 체계(Base-2)입니다. 이는 컴퓨터 하드웨어에서 전압의 있음(1)과 없음(0) 상태를 직접적으로 표현하는 방식입니다.
1. 2진수의 기본 단위
- 비트(Bit): 2진수 한 자리(
0또는1)를 나타내는 최소 정보 단위입니다. - 바이트(Byte): 8개의 비트가 모인 단위입니다. (예:
1010 1010)
2. 자릿값과 10진수로 변환
2진수는 10진수와 마찬가지로 자릿값을 가집니다. 단, 10의 거듭제곱 대신 2의 거듭제곱을 사용합니다. 오른쪽 끝에서부터 $2^0, 2^1, 2^2, 2^3, \dots$ 순서입니다.
예시: 1011 (2진수)의 변환
| 자릿값 (2의 거듭제곱) | $2^3$ (8) | $2^2$ (4) | $2^1$ (2) | $2^0$ (1) |
|---|---|---|---|---|
| 2진수 | 1 | 0 | 1 | 1 |
| 계산 | $1 \times 8$ | $0 \times 4$ | $1 \times 2$ | $1 \times 1$ |
| 결과 | 8 | 0 | 2 | 1 |
- 10진수 값: $8 + 0 + 2 + 1 = 11$
따라서 2진수 1011은 10진수로 11입니다.
3. 자주 쓰이는 8비트 값 (1 Byte)
| 2진수 (Binary) | 16진수 ([Hex) | 10진수 (Decimal) | 설명 |
|---|---|---|---|
0000 0000 |
00 |
0 | 최소값 |
0000 0001 |
01 |
1 | |
1000 0000 |
80 |
128 | MSB(최상위 비트)가 켜진 상태 |
1111 1111 |
FF |
255 | 최대값 (1 Byte의 최대 표현 가능 수) |
4. 논리 연산 (Logic Operations)
2진수는 비트 단위로 논리 연산을 수행할 때 사용됩니다. 이는 임베디드 장치 제어나 저수준 프로그래밍의 핵심입니다.
- AND 연산: 둘 다 1일 때만 1 (
1 & 1 = 1) - OR 연산: 둘 중 하나만 1이어도 1 (
1 \| 0 = 1) - NOT 연산: 반전 (
!1 = 0)