format() 함수를 이용하면 10진수를 각각 2진수, 8진수, 16진수로 변환시킬 수 있다.
변환 후, str 형태로 반환해준다.
N = 10 # 10진수
B = format(N,'b') # 2진수
O = format(N,'o') # 8진수
X = format(N,'x') # 16진수
print(B, O, X) # 1010 12 a
fstring을 이용하면 10진수를 각각 2진수, 8진수, 16진수로 변환시킬 수 있다.
변환 후, str 형태로 반환된다.
val10 = 10 # 10진수
val2 = f'{val10:024b}' # 2진수로 변환
b
: 2진수, o
는 8진수, x
는 16진수로의 변환을 의미한다.
24는 전체 진수의 길이를 의미한다.()
0은 만약 24자리가 다 채워지지 않을 경우 0을 앞에 채우는 것을 의미한다.
bin(), oct(), hex()는 각각 2진수, 8진수, 16진수로 변환시킨다
결과값은 str형태로 반환된다.
print(bin(25)) # 0b11001
print(oct(25)) # 0o31
print(hex(25)) # 0x19
int() 함수를 이용하면 2진수, 8진수, 16진수를 10진수(정수형)으로 변환시킬 수 있다. base값을 2, 8, 16으로 지정해야한다.
# 2진수, 8진수, 16진수 25를 10진수 25로 변환
print(int('0b11001', 2)) # 25
print(int('0o31', 8)) # 25
print(int('0x19', 16)) # 25
print(int('0x19', base=16)) # 25
def form16to2(n_16): # string 형태로 숫자가 들어옴
n_2 = ""
# 16진수를 10진수로 변환
if n_16.isdigit(): # 0~9이면
n_10 = int(n_16)
else:
n_10 = 10 + ord(n_16) - ord("A")
# 10진수를 2진수로 변환
for i in range(3, -1, -1):
if 1<<i & n_10:
n_2 += "1"
else:
n_2 += "0"
return n_2