2진법이란?
우리가 일상에서 사용하는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 총 10개의 기호로 표현하는 것이 10진법입니다.
하지만 컴퓨터에는 이렇게 많은 숫자를 표현할 수 없습니다. 다 표현하기에는 한계가 있고 느리기 때문이죠.
컴퓨터에서는 오직 0과 1로만 데이터를 표현합니다.
이처럼 0과 1로만 표현하는 것을 2진법이라고 합니다.
우선 123을 예를 들어 설명해보겠습니다. 대부분의 사람들은 '백이십삼'이라고 읽을 것입니다.
우리가 '백이십삼'이라고 읽는 이유는 순서대로 1을 백의 자리, 2를 십의 자리, 3을 일의 자리로 보기 때문입니다.
이것을 표현하면 '1x100 + 2x10 + 3x1 = 123' 이 됩니다.
우리 모두는 이런 과정을 당연하게 여깁니다. 왜냐하면 우리 모두 이러한 표현에 대한 약속을 했기 때문이죠.
우리는 이 약속에서 자릿수를 10의 거듭제곱으로 표현했습니다.
비슷하게 2진법에서는 두 개의 숫자만 있으므로 각 자릿수가 2의 거듭제곱을 의미합니다.
네 번째 자리 | 세 번째 자리 | 두 번째 자리 | 첫 번째 자리 | |
10진법 | 103 = 1000 | 102 = 100 | 101 = 10 | 1 |
2진법 | 23 = 8 | 22 = 4 | 21 = 2 | 1 |
2진법을 그림으로 표현하면 아래와 같습니다.
그럼 이 방법으로 10진법의 3을 2진법으로 표현하면 어떻게 될까요?
바로 11입니다. 위의 표를 보시면 2진법에서는 두 번째 자리는 21로 2입니다.
따라서 2진법으로 표현하면 11은 2¹x1 + 1x1 = 3입니다.
하나 더 예를 들어보겠습니다.
위의 그림을 보시면 가장 오른쪽 자릿수는 1의 자리(20), 그 옆의 자리는 2의 자리(21),
그다음의 자리는 4의 자리(22)입니다. 이제 2진수로 계산하면, 각 자리의 수(0 또는 1)와 각 자릿수를 곱하여( )
전부 더하면 됩니다.
그러므로, 110은 (1x22) + (1x21) + (0x20) = 4 + 2 + 0 = 6. 즉, 10진수로 6이 됩니다.
2진수에서 숫자 세는 방법
2진수로 숫자를 세는 방법은 10진수에서의 방법과 비슷하지만 0과 1 두 개의 수로만
표현된다는 차이가 있습니다. 따라서 0을 2진수로 표현하면 0이고, 1을 2진수로 표현하면 1입니다.
그러나 2진수에서는 10진수 2를 사용할 수 없으므로 2를 나타나기 위해서는 또 다른 비트가 필요합니다. 2를 2진수로는 10입니다. 비트가 하나 추가되죠.
또한, 4는 2진수로 100이므로 이때도 3번째 비트가 추가로 필요하게 됩니다.
10진수 체계에 적용하는 수학을 2진수에도 적용할 수 있습니다.
10진수에서와 마찬가지로 2진수에서도 덧셈, 뺄셈, 곱셉, 나눗셈을 할 수 있고 컴퓨터는 연산과 계산을 할 때 이런 수학을 사용합니다.
출처 : 부스트 코스 CS50 코칭 스터디 2기 https://www.boostcourse.org/cs112
모두를 위한 컴퓨터 과학 (CS50 2019)
부스트코스 무료 강의
www.boostcourse.org