본문 바로가기
IT 기초

2진수, 컴퓨터가 세상을 이해하는 방법

by TechGuru 2024. 2. 14.

만약 여러분이 할 수 있는 대답이 오직 '네' 혹은 '아니오'뿐이라면, 이 두 선택지를 나타내기 위한 다양한 방식 중에서 하나를 고르면 됩니다. 실제로 '네'와 '아니오'만으로 대화를 이어가기 위해 복잡한 문장이나 단어, 문자를 사용할 필요는 없습니다. 단순히 0과 1로 표현하는 것만으로 충분하죠.

우리가 일상에서 사용하는 십진수 시스템이 특별하다고 할 수 없는 것과 마찬가지입니다. 이는 우리 손가락이 열 개 있기 때문에, 10을 기반으로 한 숫자 체계를 사용하는 것에 불과합니다. 만약 우리 손가락이 여덟 개였다면, 여덟을 기반으로 한 숫자 체계가 자연스러울 것입니다.

 

그럼에도 불구하고 이진수 체계는 조금 특별한 면이 있습니다. 그 이유는 이진수가 가장 기본적이고 간단한 숫자 체계라는 데에 있습니다.

하나의 비트를 사용함으로써, 가장 기본적인 정보 단위를 나타낼 수 있습니다. 더 복잡한 정보를 전달하기 위해서는 여러 비트의 조합을 사용하게 됩니다. 비트 사용의 가장 간단한 예로는, 방 안에 사람이 있을 때 외부의 램프를 켜고, 사람이 없을 때는 램프를 끄는 상황을 들 수 있습니다. 엄지손가락을 들어 올리거나 내리는 동작 또한 하나의 비트 정보를 나타내는 예시입니다. 예를 들어, 두 사람, A와 B가 식당에서 음식을 평가한다고 가정해 봅시다. 평가 방법은 두 가지로, 맛있다고 생각하면 엄지손가락을 올리고, 그렇지 않다면 내린다고 합시다. 이 경우, 평가 결과는 네 가지 조합이 가능하게 됩니다.

  • 00 = 둘 다 싫어함
  • 01 = A는 싫어하지만, B는 좋아함
  • 10 = A는 좋아하지만, B는 싫어함
  • 11 = 둘 다 좋아함

첫 번째 비트는 A에 대한 반응을 나타내며, 여기서 0은 A가 음식을 맛있지 않게 생각했음을, 1은 맛있다고 생각했음을 의미합니다. B에 대한 반응을 나타내는 두 번째 비트도 마찬가지로 작동합니다. 따라서, "음식은 어땠어?"라는 질문에 대한 "A는 만족했지만, B는 만족하지 않았어."라는 대답을 "10"이라는 식으로 간결하게 제시할 수 있습니다. 물론 이러한 응답을 완전히 이해하기 위해서는 질문자와 응답자 모두가 어떤 비트가 A와 B의 반응을 나타내는지, 그리고 1과 0이 각각 긍정과 부정의 표현임을 알고 있어야 합니다. 이는 의사소통을 위해 당사자들이 특정 코드에 대한 이해가 있어야 한다는 것을 의미합니다. 비트의 특정 위치나 시퀀스가 상황에 따라 어떤 의미를 가지는지는 항상 맥락에 따라 해석되어야 합니다. 예를 들어, 특정 참나무에 매달린 노란 손수건이 가지는 의미는 그 손수건을 건 사람과 약속된 사람만이 알 수 있습니다.

음식 평가에 세 번째 평가자가 포함될 경우, 단순히 비트 하나를 추가하면 됩니다. 이렇게 세 번째 비트의 도입으로, 표현 가능한 다양한 결과의 수는 8가지로 증가합니다.

  • 000 = A, B, C 모두 실어함
  • 001 = A와 B는 싫어하지만, C는 좋아함
  • 010 = A는 싫어함; B는 좋아함; C는 싫어함
  • 011 = A는 싫어하지만, B와 C는 좋아함
  • 100 = A는 좋아하지만, B와 C는 싫어함
  • 101 = A는 좋아함; B는 싫어함; C는 좋아함
  • 110 = A와 B는 좋아하지만, C는 싫어함
  • 111 = A, B, C 모두 좋아함

 

비트의 개수에 대한 논의는 종종 등장합니다. 이는 비트의 수가 증가함에 따라 표현할 수 있는 다양한 결과의 수가 증가하기 때문입니다. 이진 코드로 표현할 수 있는 값의 총 수는 항상 2의 비트 수 제곱과 같습니다.

 

비트를 하나 추가할 때마다, 가능한 부호의 수가 기하급수적으로 두 배로 증가합니다.

 

일상에서 자주 접하는 이진 코드의 예로는 UPC(세계 상품 코드)가 있습니다.

 

이는 상품 구매 시 포장에 표시된 바코드 형태의 코드로, 검은색 선과 흰색 공간의 두께 조합을 통해 0과 1을 표현하며, 문자, 숫자, 기호 등의 정보를 포함합니다. 이 정보는 스캐너를 통해 신속하게 읽혀집니다. 비트를 활용해 문자, 이미지, 소리, 음악, 영화 등 다양한 형태의 정보를 나타낼 수 있습니다. 정보를 다양하게 표현하는 데 중요한 것은 해당 정보가 포함할 수 있는 다양한 가능성을 계산하는 것입니다. 각 가능성에 고유한 숫자를 할당할 때 필요한 비트의 수를 결정하는 데 이러한 계산이 활용됩니다.