알고리즘/프로그래머스

[Python] 진수 변환하기 (숫자 <-> 문자열) bin(), oct(), hex(), foramt()

3o14 2022. 11. 4. 14:44
728x90
반응형

1. 다른 진수 숫자로 표현하기

 

파이썬에서 숫자는 기본적으로 10진수로 표현되기 때문에 다른 진수를 표현하려면 앞에 접두어를 붙여야 한다.

// 2진수 : 0b
>>> 42 == 0b101010
True

// 8진수 : 0o
>>> 42 == 0o52
True

// 16진수 : 0x
>>> 42 == 0x2a
True

 

 

2. 진수 변환하기 (숫자 -> 문자열)

파이썬의 기본 내장함수 bin(), oct(), hex() 를 이용한다. 

// 2진수를 문자열로 변환
>>> bin(42)
'0b101010'

// 8진수를 문자열로 변환
>>> oct(42)
'0o52'

// 16진수를 문자열로 변환
>>> hex(42)
'0x2a'

 

 

인자는 10진수이든 2진수이든 상관없이 문자열로 변환해준다.

 

>>> bin(0b101010)
'0b101010'

>>> oct(0b101010)
'0o52'

>>> hex(0b101010)
'0x2a'

>>> str(0b101010)
'42'

 

접두어를 제외하고 문자열로 변환하기 _ format() 내장함수

>>> format(42, 'b')
'101010'
>>> format(42, 'o')
'52'
>>> format(42, 'x')
'2a'
>>> format(42, 'X')
'2A'
>>> format(42, 'd')
'42'

 

3. 다른 진수형을 10진수로 변환하기 (문자열 -> 숫자)

>>> int('0b101010', 2)
42
>>> int('0o52', 8)
42
>>> int('0x2a', 16)

디폴트 값은 10진수로 변환하는 것이기 때문에 10은 생략해도 10진수로 변환이 가능하다.

>>> int('42', 10)
42
>>> int('42')
42
LIST