728x90
Pyhton 진법 변환
n진수 → 10진수
* 결과값은 모두 string 입니다.
python에서는 기본적으로 int() 라는 함수를 지원한다
int(string, base)
위와 같은 형식으로 사용. base에는 진법을 넣으면 된다.
print(int('101',2))
print(int('202',3))
print(int('303',4))
print(int('404',5))
print(int('505',6))
print(int('ACF',16))
20
51
104
185
2767
10진수로 변경이 가능하다.
10진수 → 2, 8, 16진수
2, 8, 16진수는 bin(), oct(), hex() 함수를 지원한다.
print(bin(11))
print(oct(11))
print(hex(11))
0b1011
0o13
0xb
0b는 2진수, 0o는 8진수, 0x는 16진수를 의미합니다. 진법 표시를 지울려면 [2:]를 하면 된다.
print(bin(11)[2:])
print(oct(11)[2:])
print(hex(11)[2:])
1011
13
b
10진수 → n진수
int 같은 함수가 없기 때문에 코드작성이 필요하다
def solution(n, q):
rev_base = ''
while n > 0:
n, mod = divmod(n, q)
rev_base += str(mod)
return rev_base[::-1]
# 역순인 진수를 뒤집어 줘야 원래 변환 하고자하는 base가 출력
print(solution(45, 3))
1200
n진수 → n진수
위에 썻던것들을 활용해서 n진수를 10진수로 변경하고 다시 n진수로 변경하면 됩니다.
print(solution(int('c',16),4)) # 16진수인 C를 4진수로 바꾸는것
print(solution(int('4',6),3)) # 6진수인 4를 3진수로 바꾸는것
print(solution(int('21',3),7)) # 3진수인 21을 7진수로 바꾸는것
print(solution(int('15',9),5)) # 9진수인 15를 5진수로 바꾸는것
30
11
10
2
728x90
'python > 자료구조 & 알고리즘' 카테고리의 다른 글
[알고리즘] 미로 찾기 - BFS, DFS (1) | 2022.10.11 |
---|---|
[Python] Re 모듈 re.split() 으로 문자열 패턴으로 분리하기 (0) | 2022.10.02 |
[알고리즘] 백트래킹 (backtracking) - n-Queens 문제 구현 / 파이썬 Python (0) | 2022.09.02 |
[알고리즘] 백트래킹(backtracking) 알고리즘 / 파이썬 Python (0) | 2022.09.01 |
원형 큐 - 모듈 없이 구현 (0) | 2022.08.24 |