더북(TheBook)

Q&A 정수

 

 

Q. 파이썬에서 정수는 내부적으로 어떻게 저장되는가?

A. 작은 양수의 경우 간단히 이진법(binary number system)을 이용해 고정된 크기의 컴퓨터 메모리 안에 각각의 정수가 표현된다.

 

Q. 이진법은 무엇인가?

A. 아마 초등학교 때 배웠을 것이다. 이진법에서 정수는 일련의 비트(bit)로 표현된다. 이진수 한 자리는 0이나 1이며 컴퓨터에서 정보를 표현하는 기반이 되며, 각 비트는 2의 거듭제곱에 대한 이항계수이다. 구체적으로 말해, bnbn–1...b2b1b0은 정숫값 bn2n + bn–12n–1 +...b222 + b121 + b020을 나타낸다. 예를 들어 이진수 1100011은 1·64 + 1·32 + 0·16 + 0·8 + 0·4 + 1·2 +1·1, 즉 99를 나타낸다.

우리에게 익숙한 십진법(decimal number system)은 각 자리에 0에서 9까지 올 수 있고, 각 자리는 10의 거듭제곱을 의미한다는 점 외에 이진법과 똑같다. 숫자를 이진수로 바꾸는 연산은 재미있는 연산 문제로서 다음 절에서 살펴볼 것이다. 일반적으로 파이썬에서 작은 숫자는 컴퓨터 시스템의 설계(32비트 혹은 64비트)에 따라 고정된 수의 비트 안에 저장된다. 예를 들어 십진수 99는 32비트 시스템에서 이진수 00000000000000000000000001100011로 저장된다.

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