진수 문제가 나오면 항상 내장 함수를 찾느라 시간이 좀 걸렸다..! 해당 내용을 정리해보기로 한다 !
10진수에서 n진수 변환
10진수 > 2진수, 8진수 16진수
python에서는 2진수, 8진수, 16진수 변환을 위한 bin, oct, hex 메서드를 지원한다.
주의할점은 앞 두 글자는 진법 표시를 위해 있다는 점 ! bin(11)[2:] 와 같이 얻을 수 있다.
print(bin(11))
print(oct(11))
print(hex(11))
# 0b1011
# 0o13
# 0xb
10진수 > n진수
혹은 함수작성을 통해 원하는 진법으로 변환이 가능하다.
def convert(n, base=2):
T = '0123456789ABCDEF'
q, r = divmod(n, base)
if q == 0:
return T[r]
else:
return convert(q) + T[r]
n진수에서 10진수 변환
python의 int()는 정수로만 바꿔주는 줄 알았는데, 10진수로도 변환이 가능했다.
int(string, base)
로 사용이 되는데 base의 자리에 n진수의 n을 넣으면 된다.
print(int('101', 2)) # 5
print(int('202', 3)) # 20
print(int('303', 4)) # 51
print(int('404', 5)) # 104
print(int('505', 6)) # 185
print(int('ACF', 16)) # 2767
'CS > Algorithm' 카테고리의 다른 글
[Python] 소수 판별(IsPrime) 알고리즘 / 에라토스테네스의 체, 나누기 (0) | 2023.05.12 |
---|---|
우선순위 큐(Priority Queue)가 뭔데 ! (0) | 2023.04.12 |
동적 프로그래밍 (Dynamic Programming, DP) 이란? (0) | 2023.03.14 |
댓글