2진수란?
우리가 평소 쓰는 숫자는 10진수다. 0부터 9까지 10개의 숫자를 쓰고, 9를 넘으면 자리가 올라간다.
2진수는 0과 1만 사용한다. 1을 넘으면 바로 자리가 올라간다.
10진수: 0 1 2 3 4 5 6 7 8 9 10 11 ...
2진수: 0 1 10 11 100 101 110 111 1000 ...
2진수 → 10진수 변환
각 자리에는 자리값(weight) 이 있다.
해당 자리가 1이면 자리값을 더하고, 0이면 더하지 않는다.
예시: 1100 0000 → ?
2의제곱: 2⁷ 2⁶ 2⁵ 2⁴ 2³ 2² 2¹ 2⁰
자리값: 128 64 32 16 8 4 2 1
비트 : 1 1 0 0 0 0 0 0
128 + 64 = 192
자리값 오른쪽 끝부터 2⁰, 2¹, 2², … 순서로 올라간다. 2⁰=1, 2¹=2, 2²=4...
예시: 1010 1000 → ?
자리값: 128 64 32 16 8 4 2 1
비트 : 1 0 1 0 1 0 0 0
128 + 32 + 8 = 168
10진수 → 2진수 변환
반대로 10진수를 2진수로 바꾸려면, 2로 계속 나누면서 나머지를 아래에서 위로 읽는다.
168 ÷ 2 = 84 ... 나머지 0
84 ÷ 2 = 42 ... 나머지 0
42 ÷ 2 = 21 ... 나머지 0
21 ÷ 2 = 10 ... 나머지 1
10 ÷ 2 = 5 ... 나머지 0
5 ÷ 2 = 2 ... 나머지 1
2 ÷ 2 = 1 ... 나머지 0
1 ÷ 2 = 0 ... 나머지 1
따라서 168 = 1010 1000
개인적으로 암산을 하는 편인데, 구하려는 10진수의 값에서 가장 가까운 2의 제곱수를 뺀다.
2의제곱: 2⁷ 2⁶ 2⁵ 2⁴ 2³ 2² 2¹ 2⁰
자리값: 128 64 32 16 8 4 2 1
비트 : 1 0 0 0 0 0 0 0
168(10진수)에서 128(2진수, 2⁷)을 빼면 40
자리값: 128 64 32 16 8 4 2 1
비트 : 1 0 1 0 0 0 0 0
40에서 32를 빼면 8
자리값: 128 64 32 16 8 4 2 1
비트 : 1 0 1 0 1 0 0 0
8은 뺄 필요가 없으므로 8자리에 1을 추가
-> 1010 1000
'IT Basics' 카테고리의 다른 글
| 주기억장치와 보조기억장치 (0) | 2026.04.23 |
|---|---|
| IP 주소 구조 (0) | 2026.04.22 |

