비트(bit)란 무엇인가?
binary digit 줄여서 비트(bit). 0과 1의 값만 가질 수 있는 컴퓨터의 가장 작은 단위로, '컴퓨터는 0과 1로만 이뤄져 있다' 라는 얘기를 아마 한번쯤은 들어보신적이 있을텐데요. 이게 바로 비트를 얘기하는 것 입니다.
흔히 컴퓨터나 핸드폰 용량 등을 얘기할 때 쓰이는 바이트(byte), 킬로바이트(KB), 메가바이트(MB), 기가바이트(GB), 테라바이트(TB) 등도 모두 비트로 이루어져 있는 단위들이며, 컴퓨터는 이 가장작은 단위인 비트(bit)를 무수히 많이 사용하여 우리가 필요한 많은 일을 처리합니다.
비트(bit)의 숫자표현 - 이진법알아보기
1개의 비트는 두가지의 숫자를 표현할 수 있습니다. 그것은 처음부터 계속 얘기한 0과 1이죠. 그렇다면 2이상의 숫자는 어떻게 표현할까요? 사람의 손으로 생각해보면 생각보다 간단합니다. 사람의 손이 주먹을 쥔 상태가 0이라고 한다면 사람의 손은 0에서 5까지 6개의 숫자(0,1,2,3,4,5)를 표현할 수 있습니다. 그렇다면 6을 세는 방법은 뭘까요? 그건 한손을 더 쓰는 겁니다.
비트도 마찬가지로 한개의 비트로 2를 표현하지못해 비트를 한개 더 사용하며, 좀 더 큰 수를 표현할려고할 때마다 더 많은 비트를 사용합니다. 이를 수식으로 표현하면 비트의 수가 n이라고할 때 2의 n승으로 표현할 수 있으며, 비트가 8개라고할 때 2의 8승인 256(0~255)개의 수를 표현할 수 있습니다. 이 때 예시로든 8개의 비트는 byte라는 단위로 부르며 앞으로의 예시는 byte의 단위인 8비트로 설명하겠습니다.
위 이미지는 0과 1이 들어갈 수 있는 비트를 8개를 나열한 것이며, 1개의 byte를 나타낸 것 입니다. 이 때 각 비트에는 자리수라는 개념이 들어가는데, 이 자리수는 여러분들이 알고 있는 일반적인 숫자에... 1의 자리, 10의 자리, 100의 자리, 1000의 자리 등에 쓰이는 자리수랑 같으며, 백의 자리가 1 십의 자리가 5, 일의 자리가 2라고 할 때, [100 * 1] + [10 * 5] + [1 * 2]로 계산해서 152가 되듯이 이진법에서도 동일하게 [자리수 * 비트의 상태]을 모두 더하면 값이 나오는데, 이 때 이진법의 자리수는, 위 이미지와 같이 오른쪽 끝을 1로 시작해서 왼쪽으로 한칸씩 이동할 때마다 2배씩 증가합니다.
예시로 0과 1이 반복되는 위 이미지와 같은 byte가 있을 때 이 byte의 숫자값은.... 각 [자리수 * 비트의 상태]를 모두 더한 아래의 식이 나오게 되며, 그 값은....
[128 * 0] + [64 * 1] + [32 * 0] + [16 * 1] + [8 * 0] + [4 * 1] + [2 * 0] + [1 * 1] = 85
위 계산대로 85입니다. 생각보단 어렵지 않죠? 그리고 위 예시인 비트의 상태 01010101을 이진수(2진수)라고 부르고 우리가 흔히 쓰는 0,1,2,3,4,5,6,7,8,9,10,11,12,13.......이런 수를 십진수(10진수)라고 합니다.
십진수를 이진수로 바꾸기
위에 내용은 컴퓨터가 비트로 수를 표현하는 이진법을 알아봤는데, 그러면 우리가 아는 수... 즉, 십진수를 이진수로 바꾸는건 어떻게 하는걸까요? 제일 간단한 방법은, 이 방법이라고 생각되는데, 바꾸고 싶은 수 X를 2로 나누고 몫과 나머지를 확인하여 몫이 0이될 때 까지 반복하는 것입니다.
예를 들어, 십진수로 85인.... 위 이미지에 나와 있는 byte를 다시 이진수로 바꿔보는 예를 계산해보면...
2 / 85
2 / 42...1
2 / 21...0
2 /10...1
2 / 5...0
2 / 2...1
2 / 1...0
0...1
이렇게 되며, 나머지 값을 아래에서 부터 위로 쭉 적으면..... [101 0101]이 나오는데 이게 85를 이진수로변환한 값 입니다. 그런데 위 예시로 보여드렸던 이미지의 [0101 0101]과 비교해보면 방금 계산한 값은 7자리로 제일왼쪽 0이 빠지게 계산된것이 보이실텐데..... 이진수는 제일 왼쪽의 0은 언제나 생략이 가능하기 때문에 [0101 0101]은 [101 0101]과 같은 값 입니다.
글을 마치며
이번 포스팅은 컴퓨터가 비트(bit)로 수를 표현하는 이진법에 대해 알려드렸으며, 이진수를 우리가 쓰는 십진수로, 십진수를 이진수로 변환하는 방법을 최대한 비전공자 입장에서 알기 쉽게 글을 작성하려고 했는데, 그 의도가 잘 반영이 되었나는 잘 모르겠으나... 십진수를 이진수로 변환하는 방법에 대해서는 '제가 아는 제일 간단한 방법'을 알려드렸는데...
'무슨소리인지 모르겠다.', '이게 뭐가 쉽냐', '계산하기 너무 복잡하다' 등...
이 글로 처음 이진법을 접하시는 분들 중에 이렇게 생각하시는 분들이 많이 있을거라 생각이되며.... '제가 아는 제일 간단한 방법'..... 어려워서 죄송합니다...
그럼 이렇게 해보세요
'컴퓨터' 카테고리의 다른 글
16진법(hexadecimal) (0) | 2024.01.25 |
---|