비전공자의 컴퓨터 구조 뽀개기 2편

Byte8teBit·2022년 8월 31일
0

컴퓨터처럼 0과 1로 숫자 표현하기

컴퓨터의 정보 단위

컴퓨터에서 가장 작은 정보 단위를 비트 라고 합니다. 비트는 0과 1을 나타내는 가장 작은 단위로 2개의 정보를 표현할 수 있습니다. 비트수가 늘어날수록 표현 가능한 정보의 양도 2의 n제곱만큼 늘어나게 되죠.

다만 우리들이 다루게 될 정보의 양은 비트로 표시하기에 너무 많기 때문에 정보의 단위를 올려서 표현합니다. 8비트는 1바이트로 (그래서 제 아이디가 byte 8te bit...) 1000바이트는 1킬로바이트로, 1000킬로바이트는 1메가바이트로, 1000메가바이트는 1기가바이트로, 1000기가바이트는 1테라바이트로 표시합니다.

컴퓨터가 1과 0으로만 정보를 표시할 수 있기 때문에 이진법을 사용하여 표현합니다. 이진법을 통해서 나오는 수는 코드적으로 0b1011 처럼 0b 를 붙여 명시적으로 표현이 가능합니다.

이진법의 음수 구하기

이쯤되서 생각을 해보면 컴퓨터는 음수를 어떻게 표시할지 궁금해지는데요, 컴퓨터에서 이진수를 활용한 음수는 해당 숫자의 2의 보수 를 구하여 이 값을 음수로 간주합니다. 그런데 2의 보수를 구했을 때 명시적으로 마이너스 표시가 앞에 붙는 것이 아닌데 해당 숫자가 2의 보수인지 아니면 일반적인 이진수인지 구분은 어떻게 하는 걸까요?

컴퓨터는 음수에 해당하는 숫자에 플래그 를 사용하여 양수인지 음수인지를 구분합니다.

2의 보수로 표현하는 음수는 완벽하지 않다

말 그대로 2의 보수로 표현한 음수는 완벽하지 않은데, 0이나 2의 n제곱 형태의 이진수는 음수값을 얻을 수가 없습니다. 이를 증명하는 방법은 2의 보수로 구한 수에서 다시 2의 보수를 구하는 것으로 알아볼 수 있습니다.

십육진법

뜬금없어 보이지만 십육진법은 0부터 15까지의 숫자를 가지고 정보를 표현하는 숫자 표현법입니다. 보통 10을 A, 11을 B, 12를 C, 13을 D, 14를 E, 15를 F로 표현합니다. 이진수에 명시적으로 0b를 붙이는 것처럼 십육진법에도 0x를 명시적으로 붙여 십육진법으로 나타낸 숫자라는 것을 코드적으로 표시합니다. 십육진수는 더많은 정보를 표현할수 있기 때문에 좋은 점도 있지만, 가장 편리한 점은 십육진수를 이진수로, 이진수를 십육진수로 변환하는 것이 간편하다는 것입니다. 십육진수의 각 자릿수를 4자리의 이진수로 변환하여 이어붙이면 바로 이진수로 변환이 됩니다. 이러한 편리함 점 덕분에 큰 숫자의 이진수를 십육진법으로 표현하는 방법을 많이 사용합니다. :)

profile
세상에 도움이 되고픈 개발자

0개의 댓글