10진법(decimal)이란?
우리는 일상생활에서 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 의 10개의 숫자를 사용하여 수를 나타내고 자리가 하나씩 올라감에 따라 자리의 값이 10배씩 커지도록 수를 나타내는 방법을 십진법이라고 한다.
십진법으로 나타낸 수 4321은
4321 = 4 x 1000 + 3 x 100 + 2 x 10 + 1 = 4 x 10^3 + 3 x 10^2 + 2 x 10 + 1 |
과 같이 나타낼 수 있다.
2진법(binary)이란?
0, 1 의 2개의 숫자를 사용하여 수를 나타내고, 자리가 하나씩 올라감에 따라 자리의 값이 2배씩 커지도록 수를 나타내는 방법을 이진법이라고 한다.
십진수를 이진수로 변환하기
십진수를 이진수로 변환하기 위해서는 우선 십진수를 2의 거듭제곱의 합으로 쪼개주어야 한다. 예를 들어 십진수 13을 2의 거듭제곱의 합으로 쪼개면, 다음과 같다.
13 = 8 + 4 + 0 + 1 = 1 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 1 x 2^3 + 1 x 2^2 + 0 x 2 + 1 x 1 |
이렇게 쪼개진 식에서 2의 거듭제곱 수를 제외하고 앞의 수인 0과 1만 모아서 나열하면, 2진수로 표현된 숫자 13을 얻을 수 있다.
즉, 십진수 13은 이진수 1101(2)과 같다.
파이썬에는 2진수로 변환해주는 bin() 함수가 존재한다.
코드
n = bin(13) print(n) |
실행 결과
0b1101 |
0b는 2진수를 의미한다.
8진법(octal)이란?
0, 1, 2, 3, 4, 5, 6, 7 의 8개의 숫자를 사용하여 수를 나타내고, 자리가 하나씩 올라감에 따라 자리의 값이 8배씩 커지도록 수를 나타내는 방법을 팔진법이라고 한다.
십진수를 팔진수로 변환하기
십진수를 팔진수로 변환하기 위해서는 우선 십진수를 8의 거듭제곱의 합으로 쪼개주어야 한다. 예를 들어 십진수 85를 8의 거듭제곱의 합으로 쪼개면, 다음과 같다.
85 = 1 x 64 + 2 x 8 + 5 = 1 x 8^2 + 2 x 8 + 5 |
이렇게 쪼개진 식에서 8의 거듭제곱 수를 제외하고 앞의 수인 0 ~ 7만 모아서 나열하면, 8진수로 표현된 숫자 85을 얻을 수 있다.
즉, 십진수 85은 팔진수 125와 같다.
파이썬에는 8진수로 변환해주는 oct() 함수가 존재한다.
코드
n = oct(85) print(n) |
실행 결과
0o125 |
0o는 8진수를 의미한다.
16진법(hexadecimal)이란?
0, 1, 2, 3, 4, 5, 6, 7, 8, 9의 10개의 숫자와 A, B, C, D, E, F 6개의 알파벳을 사용하여 수를 나타내고, 자리가 하나씩 올라감에 따라 자리의 값이 16배씩 커지도록 수를 나타내는 방법을 십육진법이라고 한다.
십진수를 십육진수로 변환하기
십진수를 십육진수로 변환하기 위해서는 우선 십진수를 16의 거듭제곱의 합으로 쪼개주어야 한다. 예를 들어 십진수 1000을 16의 거듭제곱의 합으로 쪼개면, 다음과 같다.
100 = 3 x 256 + 14 x 16 + 8 = 3 x 16^2 + 14 x 16 + 8 |
이렇게 쪼개진 식에서 16의 거듭제곱 수를 제외하고 앞의 수인 0 ~ 7과 A ~ F만 모아서 나열하면, 16진수로 표현된 숫자 3E8을 얻을 수 있다.
즉, 십진수 1000은 십육진수 3E8과 같다.
파이썬에는 16진수로 변환해주는 hex() 함수가 존재한다.
코드
n = hex(1000) print(n) |
실행 결과
0x3e8 |
0x는 16진수를 의미한다.
10진수 변환표
10진수 | 2진수 | 8진수 | 16진수 |
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
16 | 10000 | 20 | 10 |
'파이썬 Python' 카테고리의 다른 글
[구현] 구현 예제 : 상하좌우 / 코딩테스트 / 파이썬 (0) | 2021.08.03 |
---|---|
[파이썬] 최대공약수 / 최소공배수 (0) | 2021.07.29 |
[알고리즘] 최단 경로 : 특정 지점까지 가장 빠르게 도달하는 방법을 찾는 알고리즘 / 다익스트라(Dijkstra) 알고리즘/ 개선된 다익스트라 알고리즘 / 파이썬 (0) | 2021.07.27 |
[파이썬 Python] 정렬 라이브러리 / sorted() , sort() , key 값 (0) | 2021.06.15 |
[파이썬 Python] collections 라이브러리 / deque / Counter (0) | 2021.05.27 |