먼저 파이썬은 기본 10진수이기 때문에 다른 진수는 아래와 같이 접두어가 붙습니다.
- 2진수: 0b
- 8진수: 0o
- 16진수: 0x
10진수에서 2진수, 8진수, 16진수 변환
bin(), oct(), hex() 내장함수 사용
파이썬에서 제공하는 내장함수를 사용하면 쉽게 변환 할 수 있습니다.
value = 60
b = bin(value)
o = oct(value)
h = hex(value)
print(b)
print(o)
print(h)
# 0b111100
# 0o74
# 0x3c
결과는 전부 문자열 타입입니다.
format() 내장함수 사용
forrmat() 내장함수를 사용하여 위 결과와 마찬가지로 변환할 수 있습니다.
value = 60
b = format(value, '#b')
o = format(value, '#o')
h = format(value, '#x')
print(b)
print(o)
print(h)
# 0b111100
# 0o74
# 0x3c
--------------------------------
value = 60
b = format(value, 'b')
o = format(value, 'o')
h = format(value, 'x')
print(b)
print(o)
print(h)
# 111100
# 74
# 3c
- 두 번째 인자에서 #을 제거하면 접두어가 빠진 결과로 나오게 됩니다. 변환된 값 그 자체만 필요하게 될 경우, 유용하게 사용할 수 있습니다.
다른 진수 형태에서 10진수로 변환
2진수, 8진수, 16진수에서 10진수로 변환하는 방법입니다. 여기서 변환하고자 하는 진수의 타입은 문자열이며 반환되는 10진수 결과는 정수 타입입니다.
b = int('0b111100', 2)
o = int('0o74', 8)
h = int('0x3c', 16)
print(b)
print(o)
print(h)
# 60
# 60
# 60
---------------------------
b = int('111100', 2)
o = int('74', 8)
h = int('3c', 16)
print(b)
print(o)
print(h)
# 60
# 60
# 60
다른 진수 형태에서 다른 진수로 변환
2진수에서 8진수로 변환하는 것과 같이 변환하는 방법입니다. 여기서 변환하고자 하는 진수의 타입은 정수이며 반환되는 타입은 문자열입니다.
o = oct(0b111100) # 8진수
h = hex(0b111100) # 16진수
s = str(0b111100) # 10진수
print(o)
print(h)
print(s)
# 0o74
# 0x3c
# 60
'Engineering WIKI > Python' 카테고리의 다른 글
Generator (0) | 2022.05.30 |
---|---|
일급함수 (1) | 2022.05.30 |
추상클래스(abstract class) (1) | 2022.05.25 |
파이썬 람다식 (0) | 2022.05.25 |
파이썬 퀵 정렬 (0) | 2022.05.25 |
Python3 vs Pypy3 (0) | 2022.05.25 |
Python TDD (0) | 2022.05.23 |
파이썬 상속 (Inheritance) (0) | 2022.05.23 |