반응형
int_hex_str_bin

진법 표현 int hex str bin

파이썬에서 진법 표현 방법을 알아보자.

여러가지 진법 수 표현

기본적으로 숫자를 쓰면 10진수이다. 수 앞에 진법표기 접두어를 쓰면 해당 진법의 수로 인식을 한다. (숫자 0 다음에 문자 o/x/b)

  • 8진수 : 0o
  • 16진수 : 0x
  • 2진수 : 0b
i10 = 1234
i8 = 0o1234
i16 = 0x1234
i2 = 0b1010
print(i10, i8, i16, i2)
1234 668 4660 10
  • 그냥 print로 출력하면 10진수로 변환하여 출력해 준다.

여러가지 진법 수를 문자열로 변환

  • str, oct, hex, bin 함수를 사용한다.
i10 = 1234
print( str(i10), oct(i10), hex(i10), bin(i10))
1234 0o2322 0x4d2 0b10011010010

i16 = 0x4d2
print( str(i16), oct(i16), hex(i16), bin(i16))
1234 0o2322 0x4d2 0b10011010010
동일한 출력결과
  • 파라미터는 10진수일 필요없다. 아무거나 결국엔 십진수로 변수에 값이 할당되므로 같은 결과가 나온다.

포맷 스트링을 사용한 문자열 변환

  • format 함수로 사용하여 수를 진법 스트링으로(b, o, x) 변환한다.
  • 소문자면 소문자로 대문자면 대문자로 출력된다.
  • 앞에 #(샵)을 붙이면 prefix 도 출력한다.
print( format(1234, 'x'), format(1234, 'X'), format(1234, '#x'), format(1234, '#X') )
4d2 4D2 0x4d2 0X4D2
  • 출력 포맷 스트링을 사용하면 원하는 형태로 prefix를 줄 수 있다. (단, %방식은 %b를 지원하지 않는다.)
print( '%x %X 0x%x  '%(1234,1234,1234) )
4d2 4D2 0x4d2
print( '%d %o %x' % (1234,1234,1234) )
1234 2322 4d2
print( '{0:d} {0:o} {0:x} {0:b}'.format(1234,1234,1234,1234) )
1234 2322 4d2 10011010010

여러가지 진법 수 문자열을 수로 변환

print( int('0o2322', 8), int('0x4d2', 16), int('0b10011010010', 2) )
1234 1234 1234
  • 간단하게 스트링을 int로 타입 캐스팅하는데 기본이 10진수이고, 다른 진법인 경우는 진법을 명시를 해 주면 된다.

Author: crazyj7@gmail.com

'Python' 카테고리의 다른 글

파이썬 충돌해결 module conflict  (0) 2019.12.01
파이썬 개발환경/가상환경구축  (0) 2019.12.01
크롤링 BeautifulSoup 요약  (1) 2019.11.06
크롤링(Crawl) 2편  (2) 2019.10.27
웹 크롤링 Crawl 1편  (0) 2019.10.24

+ Recent posts