Python 2진수, 8진수, 10진수, 16진수 변환 bin(), oct(), hex(), str(), format

xhaktm·2023년 11월 8일
0

TIL

목록 보기
3/9
post-thumbnail

파이썬은 10진수를 기본으로함

2진수 : 0b
8진수 : 0o
16진수: 0x

10진수 ==> 2진수, 8진수, 16진수

1. 파이썬 내장함수 이용

영어의 앞 3글자에서 따온 함수명

2진수: Binary
8진수: Octal
16진수: Hexadecimal

bin(value): 10진수 ==> 2진수 변환
oct(value): 10진수 ==> 8진수 변환
hex(value): 10진수 ==> 16진수 변환

※ 반환값: 문자열

2. format() 함수 이용

format(value, '#b'): 10진수 ==> 2진수 변환
format(value, '#o'): 10진수 ==> 8진수 변환
format(value, '#x'): 10진수 ==> 16진수 변환

'#'제거 -> 앞에 문자 제거되어 출력됨.
EX) format(value, 'b')

※ 소문자, 대문자 주의
EX) format(value, 'b') => EX) format(value, 'B')

  • 16진수는 10진수의 10~15를 a~f로 표현한다.

  • 이때, a~f는 소문자로 표현할 수도 있고 대문자로 표현 가능하다.

  • 따라서, 평균값이 10 이상인 경우에는 16진수 변환 결과가 a~f가 될 수 있으므로, 이때 소문자와 대문자를 구분할 수 있다.


2진수, 8진수, 16진수 ==> 10진수



n 진수 ==> 10진수로 바꾸는 방법

int(x, base=10) int 함수는 기본인자로 10을 가지고 있다.

  • base의 기본값은 10 이고 0 또는 2부터 26까지의 정수가 올 수 있다.

  • base값으로 n이라는 정수를 선택할 경우 해당 리터럴(x의 정수형 리터럴)은 0~n-1까지의 숫자로 구성될 수 있으며 2, 8, 16을 base값으로 넣는 경우 선택적으로 숫자 대신 0b,0B, 0o,0O, 0x,0X를 사용할 수 있다.

  • base값으로 된 이 숫자들은 정수형 리터럴을 해당 진수로 계산한 결과를 10진수 형태로 알려준다.


f-string 포매팅

  • f-string은 파이썬 3.6 이상에서 사용할 수 있는 문자열 포매팅 방식으로, 문자열 내에 중괄호 {}를 사용하여 변수나 표현식을 직접 삽입할 수 있다. 이때 문자열 앞에 'f’를 붙여서 f-string임을 나타낸다.

  • EX) f'#{avg:02X}'에서 avg:02X는 avg 변수를 2자리 16진수 대문자 형태로 포매팅하라는 의미이다. 02는 최소 2자리를 사용하라는 의미이며, 부족한 자리는 0으로 채워진다. X는 16진수를 대문자로 표현하라는 의미이다.

    따라서 avg가 10인 경우, f'#{avg:02X}'는 '#0A’를 출력한다.

profile
"Done is better than Perfect"

0개의 댓글