728x90
10진수 정수를 1부터 9까지의 n진법으로 변환해 출력해보자.
n진법 수 -> 10진법 수
num = '1001001'
base = 2
answer = 0
for idx, i in enumerate(num[::-1]):
answer += int(i) * ( base ** idx )
문자열의 역순에서 base 의 자릿수승 (2진법의 경우 1,2,4,8,16, .... ) 만큼의 곱을 계속 더해 십진수로 변환함.
10진법 수 -> n진법 수
from collections import deque
num=34
n=8
q = deque([])
o=''
while num:
num,m=divmod(num,n)
o=(str(m) if m<10 else 'ABCDEF'[m-10])+o
q.appendleft(str(m) if m<10 else 'ABCDEF'[m-10])
print(''.join(q))
16진수 이하의 경우에만 가능함.
num 변수의 값이 10진수 정수여야만 가능함.
'프로그래밍 > 기억노트' 카테고리의 다른 글
[python] 문자열 list의 문자열들의 '\n' newline 지우기 (0) | 2021.01.11 |
---|---|
[MySQL] 명령어 암기 노트 (0) | 2020.10.24 |
[python] 코딩 테스트 약점 정리 (0) | 2020.10.09 |
[python] union 연산으로 노드 집합 관계 구하기 (0) | 2020.10.07 |
[python] 이진 탐색 알고리즘 (0) | 2020.09.11 |