n진수 → 10진수
* 결과값은 모두 string
python에서는 기본적으로 int() 라는 함수를 지원한다
int(string, base)
10진수 → n진수
2, 8, 16진수는 bin(), oct(), hex() 함수를 지원한다.
각 결과는 앞에 진법을 표시해서 문자열을 리턴하므로 생략하고 싶다면 [2:]를 붙여주면 되겠다.
물론 직접 코딩해도 된다.
def convert(n, q):
result = ''
while n > 0:
n, mod = divmod(n, q)
result += str(mod)
# 나머지가 거꾸로 들어가므로 뒤집어줘야 정답
return result[::-1]
위의 코드에서 divmod를 안쓰면 다음과 같다.
def convert10to2(num, n):
data = ''
while True:
data += str(num % 2)
num = num // 2
if (num // 2) == 0:
data += str(num % 2)
break
return data[::-1]
divmod 쓰는 편이 깔끔하긴 하다 ㅎㅎ
'Algorithm > 개념 설명' 카테고리의 다른 글
파이썬 자료구조 - 해시, 스택, 큐, 덱, 힙 (0) | 2022.10.10 |
---|---|
파이썬 소수 판별 알고리즘 (0) | 2022.07.02 |
DFS(깊이 우선 탐색) (0) | 2020.07.31 |
BFS(너비 우선 탐색) (0) | 2020.07.31 |
DP (Dynamic Programming) 동적 계획법이란? (0) | 2020.07.28 |