N진수에 N은 등장하지 않는다!
1. 2/8/16진법 -> 10진법
print(int('0b1010', 2)) # 10
print(int('0o'))
2. 10진법 -> 2/8/16진법
b = bin(10) # '0b1010'
o = oct(18) # '0o22'
h = hex(33) # '0x21'
3. 10진법 -> N진법
3-1. 재귀함수
import string
def convert_notation(number:int, base:int)->int:
base_num = string.digits + string.ascii_uppercase
q, r = divmod(number, base)
if q:
return convert_notation(q, base) + number[r]
else:
number[r]
3-2. 반복문
import string
def convert_notation(number:int, base:int)->int:
base_num = string.digits + string.ascii_uppercase
converted = ''
if number < n:
return base_num[number]
else:
while number >= base:
number, r = divmod(number, base)
converted += base_num[r]
converted += base_num[number]
return converted[::-1]
'Python 활용하기' 카테고리의 다른 글
[Algorithm] LIS(Longest Increase Sequence) (0) | 2023.01.12 |
---|---|
시간복잡도 생각하기 (지속 업데이트) (0) | 2022.11.27 |
소수 (Prime Number) (0) | 2022.09.27 |
정규 표현식 (0) | 2022.09.26 |
순열과 조합 (0) | 2022.09.07 |