더북(TheBook)

앞서 우리는 메모리 주소를 배웠습니다(1장 1절). 8비트 컴퓨터의 메모리 주소가 2진수로 0010 1101이라면 2진수 네 자릿수를 16진수 한 자릿수로 표현할 수 있으므로 0x2d로 나타낼 수 있습니다.

>>> address_8bit = 0b00101101

>>> hex(address_8bit)

'0x2d'


hex() 함수는 정수를 16진수로 표현합니다. 2진수로 표현하면 8비트를 표현하는 데 여덟 자릿수가 필요하지만, 16진수로 표현하면 두 자릿수로 간단히 나타낼 수 있어 가독성을 높일 수 있습니다. 이러한 이유로 메모리 주소를 나타낼 때는 16진수를 사용합니다.

32비트 컴퓨터는 서른두 자릿수의 2진수 수가 아닌 여덟 자릿수의 16진수 수를 이용해 표현합니다.

>>> address_32비트 = 0x1234abcd

>>> bin(address_32비트)

'0b10010001101001010101111001101'


지금까지 10진수, 2진수, 16진수에 대해 알아보고 진수 변환도 해 보았습니다. 또한 메모리 주소를 16진수로 표현하는 방법도 살펴보았습니다. 이제 본격적으로 컴퓨터가 정수를 표현하는 방법을 알아봅시다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.