[python] 4. 정수를 10진수, 8진수, 16진수로 표현할 수 있어요.
안녕하세요. 언휴예요.
이번에는 파이썬에서 정수 데이터를 표현하는 방법을 알아보기로 해요.
파이썬에서는 정수를 10진수 외에도 8진수나 16진수로 표현할 수 있어요.
13 처럼 숫자로만 표현하면 10진수 표현이예요. 우리가 일상에서 쓰는 것이죠.
그런데 컴퓨터는 메모리에 값을 저장하고 저장 단위의 최소가 비트죠. 그래서 2진수나 8진수, 16진수로 표현할 때도 많답니다. 특히 8진수 한 자리는 2진수 세 자리의 값을 표현할 수 있고 16진수는 2진수 네 자리의 값을 표현할 수 있어서 메모리의 값을 표현하기 편하답니다.
예를 들어 8비트 메모리에 01011101라는 데이터가 있을 때 이진수 세 자리를 8진수로 나타낼 수 있어요. 01 011 101 처럼 첫 번째 자리부터 세 자리씩 묶은 후에 01은 8진수 1, 011은 8진수 3, 101은 8진수 5이므로 이진수 01011101는 8진수로 135랍니다.
검산을 해 볼까요?
이진수는 자리값은 1(2의 0승), 2(2의 1승), 4(2의 2승, 8(2의 3승),... 입니다.
따라서 이진수 01011101는 2의 6승+2의 4승 + 2의 3승 + 2의 2승 + 2의 0승 = 64 + 16 + 8 + 4 + 1 = 93
8진수의 자리값은 1(8의 0승), 8(8의 1승), 64(8의 2승), ...입니다.
따라서 8진수 135는 8의 2승+ 3X8의 1승 + 5X8의 0승 = 64+ 24 + 5 = 93
그리고 16진수 한 자리는 이진수 네 자리를 표현할 수 있어요. 그런데 개발자가 표현한 수가 10진수를 표현한 것인지 8진수 혹은 16진수를 표현하는 것인지를 구분할 수 있어야 겠죠.
파이썬에서는 8진수 앞에는 0o (숫자 0과 알파벳 o)를 붙여서 표현하고 16진수 앞에는 0x (숫자 0과 알파벳 x)를 붙여서 표현해요.
따라서 0o13은 8진수 13을 표현하는 것으로 10진수로 8+3 = 11을 표현하는 것이랍니다. 0x13은 16진수 13을 표현하는 것으로 16+3 =19를 표현하는 것이예요.
'언어 자료구조 알고리즘 > 파이썬(Python)' 카테고리의 다른 글
[python] 9. 목록의 값을 변경하지 않을 때는 TUPLE을 이용하세요. (0) | 2016.05.15 |
---|---|
[python] 8. 함수를 만들어 코드를 재사용하기 (0) | 2016.05.15 |
[python] 7. input 함수 사용하여 입력받기 (0) | 2016.05.15 |
[python] 6. 다양한 방법으로 문자열 표현할 수 있어요. (0) | 2016.05.15 |
[python] 5. 파이썬에서는 실수 뿐만 아니라 복소수도 제공해요. (0) | 2016.05.15 |
[python] 3. print 함수 사용하여 출력하기 (0) | 2016.05.08 |
[python] 2. 변수를 이용하여 여러 문맥에서 자료 값을 설정 및 가져오기 (0) | 2016.05.08 |
[python] 1. 인터프리터이기도 한 파이썬, 산술 계산에도 쉽게 사용할 수 있어요. (0) | 2016.05.08 |
[Python 살펴보기] 4. 모듈 만들기 (0) | 2016.05.01 |
[Python 살펴보기] 3. 함수 만들기 (0) | 2016.05.01 |