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

+ Recent posts