10진수 → 2진수/8진수/16진수로 변환
* 결과는 모두
string(문자열)로 반환
bin(x : int) : 정수 x를 입력받아서 2진수로 변환한 값을 문자열로 반환
oct(x : int) : 정수 x를 입력받아서 8진수로 변환한 값을 문자열로 반환
hex(x : int) : 정수 x를 입력받아서 16진수로 변환한 값을 문자열로 반환
print(bin(12))
print(oct(12))
print(hex(12))0b는 2진수, '0o'는 8진수, '0x'는 16진수를 의미함0b1011
0o13
0xc
변환한 값을 정수로 변환하고 싶다면 int 함수와 문자열 슬라이싱을 이용하면 됨!
단, 두자리 진수는 문자가 포함되기 때문에 별도의 방법을 생각해야 함.'
print(int(bin(12)[2:])
print(oct(12)[2:])
1011
13
def trans(number, n):
answer = ''
while number > 0:
number, mod = divmod(number, n)
answer += str(mod)
return answer[::-1]
# 제일 마지막 자릿수가 먼저 계산되어 앞에 쌓이기 때문에 뒤집어야 함
int(value, base)
base에는 n진수의 n을, value에는 n진수 값(문자열)을 매개변수로 넣어주면 됨.
n진수를 10진수로 변환하여 정수 값을 반환
base에는 2부터 36 사이의 값을 입력할 수 있음
print(int('111', 2))
print(int('123', 5))
print(int('777', 8))
print(int('A0B', 16))
7
38
511
2571
- n진수를 10진수로 변경
- 10진수를 n진수로 변경
print(trans(int('25',4),3)
# 4진수 25를 3진수로 변경하는 코드
참고 사이트