0과 1로 숫자를 표현하는 방법

이준원·2023년 12월 1일
0

컴퓨터는 0과 1로 모든 정보를 받아들이고, 표현한다.
하지만 우리가 컴퓨터를 쓸때는 0과 1 이외에도 다양한 숫자를 볼 수 있다.
컴퓨터는 어떻게 0과 1로 3,4,5같은 숫자들은 표현하는 걸까?


컴퓨터에서 0과 1을 나타내는 정보단위를 비트(bit)라고 한다.
이를 설명해보자면 1비트는 전구 한개와 같이 켜진상태와 꺼진상태 두 가지의 정보를 표현 할 수 있고, 2비트는 전구 두개와 같아 아래의 그림과 같이 네 가지의 정보를 표현 할 수 있다.

이때 여기서 찾을 수 있는 규칙성이 있는데, 바로 n비트가 표현 할 수 있는 정보의 갯수는 2의 n제곱이라는 것이다.

하지만 비트 하나로는 98,456,234과 같은 큰 숫자단위를 표현하기엔 불편함이 있어서 다른 데이터 단위들이 나오게 되었다.


이제 알아 볼 것은 0과 1만으로 숫자를 표현하는 방법인 이진법이다.

우리가 평소에 사용하는 숫자표현법은 숫자가 9를 넘어갈 때 자리올림을 하는 십진법인데, 이진법은 숫자가 1을 초과하는 시점에 자리올림을 하여서 표현 할 수 있다.

이때 이진법으로 표현한 수를 '이진수', 십진법으로 표현한 수를 '십진수'라고 한다.

앞에서 이진수의 양수 표현법을 알아보았으니 이번엔 이진수의 음수 표현법에 대해 알아보겠다.

십진수의 음수를 표현 할때는 간단하게 숫자앞에 마이너스 기호를 붙히면 되지만 컴퓨터는 마이너스 기호를 인식 할 수 없다.

그래서 나온 유명한 표현법들중 하나가 2의 보수를 구해 이 값을 음수로 간주하는 방법이다.

2의 보수란 '어떤 수를 그보다 큰 2의 n제곱에서 뺀 값' 을 의미한다.

예를 들어 2진수 11의 2의 보수는 모든 0과 1을 뒤집은 00에 1을 더한 값인 01이다.

이때 궁금한 점이 생길 수 있다.
바로, 예를들어 2진수 -1011을 표현하기위한 음수 0101과 십진수 5를 표현하기위한 양수 0101은 생긴 것이 같은데 어떻게 이를 음수인지 양수인지 구분하냐는 것이다.

이때 컴퓨터에서는 이를 구분하기 위해 플래그(flag)를 사용한다.
플래그는 간단하게 컴퓨터 내부에서 숫자들이 가지고있는 음수,양수 구별표식이라고 생각하면 된다.


이렇게 이진법으로 0과 1만을 사용해 모든 숫자를 표현하는 방법을 알아보았는데 이 이진법은 0과 1만을 사용하기에 큰 숫자를 표현 할 때 너무 길어진다는 단점이 있다.

그래서 데이터를 표현 할 때 사용하는 또 다른 표현방식으로 십육진법이라는 것이 있다.

십육진법은 수가 15를 초과할때 자리올림을 하는 표현 방식이고 십진수 10, 11, 12, 13, 14, 15를 각각 A, B, C, D, E, F로 표현한다.

십진법은 한 글자로 열 여섯 종류의 정보를 표현 할 수 있어 이진수보다 더 적은 자릿수로도 많은 정보를 표현 할 수있다.


그런데 사람들은 왜 굳이 우리가 편하게 사용하는 십진수를 놔두고 십육진수를 사용하는걸까?

여기엔 몇 가지 이유가 있지만 가장 결정적인 이유중 하나는 이진수->십진수, 십진수->이진수의 형태로의 변환이 쉽기 때문이다.

  • 먼저 십육진수를 이진수로 변환하는 방법은 다음과 같다.

바로 십육진수의 한 글자를 4비트의 이진수로 간주하는 것이다.

즉 십육진수를 이루는 각 글자들을 따로 변환하고 그대로 이어붙이면 이진수가 된다는 것이다.

  • 다음으로 이진수를 십육진수로 변환하는 방법은 다음과 같다.

이진수 숫자를 네 개씩 끊고 끊은 네 개의 숫자를 십육진수로 변환한 뒤 그대로 이어붙이면 된다.


이상으로 0과 1로 숫자를 표현하는 방법에 대해 알아보았다.

0개의 댓글