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진수로 변경하는 코드
참고 사이트