[Python] 2진수/8진수/16진수 변환

Sujin Lee·2022년 9월 23일
0

Python

목록 보기
7/13
post-thumbnail

10진수 ➡️ 2/8/16진수 변환

  • 파이썬은 기본 10진수이기 때문에 다른 진수는 접두어가 붙는다.
    • 2진수: 0b
    • 8진수: 0o
    • 16진수: 0x

bin(), oct(), hex() 내장함수 사용

  • 결과는 전부 문자열
value = 60

b = bin(value)
o = oct(value)
h = hex(value)

print(b)
print(o)
print(h)


# 0b111100
# 0o74
# 0x3c

format() 내장함수 사용

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

2/8/16진수 변환 ➡️ 10진수

  • 첫번째 인자는 변환하고자 하는 진수(문자열)
  • 두번째 인자는 첫번째 인자의 진수 형태
b = int('0b111100', 2)
o = int('0o74', 8)
h = int('0x3c', 16)

print(b)
print(o)
print(h)


# 60
# 60
# 60

2/8/16진수 변환 ➡️ 2/8/16진수 변환

bin(), oct(), hex() 내장함수 사용

  • 변환하고자 하는 진수의 타입은 정수
  • 반환되는 타입은 문자열
o=oct(0b111100)
h=hex(0b111100)
s=str(0b111100)

print(o)
print(h)
print(s)

# 0o74
# 0x3c
# 60

문자열.format() 메소드 사용

s = "2진수: {0:#b}, 8진수: {0:#o}, 10진수: {0:#d}, 16진수: {0:#x}".format(60)

print(s)

# 2진수: 0b111100, 8진수: 0o74, 10진수: 60, 16진수: 0x3c
  • 두번째 인자에서 # 제거 ➡️ 접두어가 빠진 결과
  • 변환된 값 그 자체만 필요할 때 사용
s = "2진수: {0:b}, 8진수: {0:o}, 10진수: {0:d}, 16진수: {0:x}".format(60)

print(s)

# 2진수: 111100, 8진수: 74, 10진수: 60, 16진수: 3c
profile
공부한 내용을 기록하는 공간입니다. 📝

0개의 댓글