2진수는 0과 1로만 이루어져있기 때문에 가독성이 매우 좋지 않다. 그래서 사람들은 몇 가지 방벙을 고안해냈다.
1️⃣ 8진 표현법 (octal representation)
2진수 비트들을 3개씩 그룹으로 묶어 표현하는 법이다. 비트 3개를 묶으면 2³개의 표현을 할 수 있다. 즉 0에서 7까지의 표현을 할 수 있다. 이렇게 비트를 3개씩 묶어서 2진수를 8진 표현법으로 바꾸어 표현한다.
2️⃣ 16진 표현법 (hexadecimal representation)
비트 4자리를 하나로 묶어 한자리로 보면 2⁴가지를 즉 0부터 15까지 16가지를 표현할 수 있다. 8진표현법보다 16진 표현법을 많이 사용하는데 그 이유는 무엇일까?
컴퓨터는 대부분 8비트의 배수를 사용해 만들어지기 때문에 비트를 3으로 나누어야하는 8진표현법을 사용하면 비트의 수가 균일하게 나누어 떨어지지 않는다. 하지만 8의 배수는 4로 균일하게 나누어 떨어지기 16진 표현법을 많이 사용한다.
다만 16진법을 표현할 숫자는 0부터 9까지 10개밖에 없기 때문에 알파벳 abcdef를 각각 11, 12, 13, 14, 15에 대입하여 표현할 수 있다.
공부하다보니 4진표현법은 왜 없을까 궁금해졌다. 서치해봐도 찾기어려워 스스로 추측할 수 밖에 없었다.
8진표현법보다 16진표현법을 많이 쓰는 이유가 16진표현법은 알파벳도 섞어쓰기때문에 가독성이 훨씬 높아져서라고한다.
4진표현법을 생각해보면 비트를 2개씩 묶고 0,1,2,3으로만 표현되니 사실상 2진법으로 표현한 것과 가독성차이가 크게 나지 않을것 같았다. 그래서 시도해본 적이 없기 때문에 서치해도 안나오지않았을까 싶다.
그냥 숫자로만 적혀있으면 몇 진법으로 나타낸 수인지 알기 어렵다. 아래 첨자를 이용해서 구별하는 방법이 있으나 컴퓨터 키보드로는 입력하기가 어려워 여러 프로그래밍 언어로 따르는 표기법이 있다.
비트는 너무 작아서 기본 단위로 사용하기에는 유용성이 떨어지기 때문에 덩어리로 조직화해서 사용한다.
비트의 갯수에 따라 묶는 이름은 위 표를 참고하면 된다. 컴퓨터가 자연스럽게(빠르게) 처리할 수 있는 가장 큰 덩어리는 워드이다. 예를 들어 C언어에서 int형은 16비트로 가장 자연스러운 크기의 2진수를 표현한다.
비트의 크기에 따라 정해진 비트 크기의 변수를 선언할 수도 있다. 이것을 자료형(data type)이라고 부른다
더 큰 비트들의 묶음을 표현하는 표준용어도 있다. 아래 표를 보면 비트갯수별 단위 이름에 대해 알 수 있다.
위 표를 보면 킬로바이트, 메가바이트 같이 익숙한 표현과 키비바이트, 메비바이트라는 표현도 있다. 처음 데이터단위를 표시할 때 2를 밑으로 하는 숫자와 10을 밑으로 하는 범용적으로 사용했다. 예를 들어 2¹⁰(1,024)은 10³(1,000)에 가장 가까워 비슷하게 사용하였다.
이를 악용하는 사례가 나오자 표준화단체에서 2를 밑으로하는 데이터단위를 따로 만든 것이다. 이 단위는 많이 사용되지는 않지만 정밀도가 필요한 소프트웨어에서 조금씩 채택하여 사용하고 있다.