본문 바로가기
Engineering WIKI/Python

파이썬 2진수, 8진수, 10진수, 16진수 변환

by wonos 2022. 5. 26.

먼저 파이썬은 기본 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
일급함수  (0) 2022.05.30
추상클래스(abstract class)  (0) 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