ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 23.01.06 python 다양한 진수(2진수, 8진수, 16진수) 표현하기
    개발 이야기/TIL 2023. 1. 6. 23:50

    우리는 기본적으로 10진수 형태로 숫자를 표현한다.

    하지만 컴퓨터는 2진수, 8진수, 16진수 등 다양한 진수를 사용할 때가 있다. 

    이때 대표적으로  Hexadecimal(16진수) 표현법은 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F를 사용한다. 

    이때 A부터 각각의 문자는 10, 11,12,13,14,15를 의미한다

    다른 진수 형태로 숫자 표현하기

    2진수는 binary, 8진수는 octal(그 화학할때 옥탈이다), 16진수(hecadeciamal)임으로 여기서 따와서

    2진수는 0b, 8진수는 0o, 16진수는 0x로 시작한다. 

    아래의 예시로는 16진수를 변환하는 예시를 위주로 작성할 예정이다

    #10진수를 16진수로 변환하기

    10진수에서 다른 진수로 변환할 때 아래와 같은 내장함수를 이용한다. 

    bin은 2진수, oct는 8진수, hex는 16진수로 변환하는 함수이다. 이때 출력은 모두 문자열 string type이다.

    16진수를 10진수로 변환하기

    첫번째는 str을 이용하는 것이다. 이 경우 string type으로 출력된다.

    두번째는 int를 이용하는 것이다. n = int(a, 16)로 작성하면 a를 16진수로 인식해 변수 n에 정수형으로 저장한다. 

    이때 주의해야할 점은 str안에는 quote를 넣으면 안되고, int에서는 string type으로 값을 넣어야한다는 것이다. 

    16진수 형태로 출력하기 

    이 또한 2가지 방법이 있다. python formating에 여러 방법이 있기 때문이다. 

    formating 방법들

    1. % format

    %연산자와 함깨 자료형을 같이 적어줘야한다. 대표적으로 %d, %s, %f 등이 있다. 우리는 %x를 이용한다. 

    print('%x'% n)  #n에 저장되어있는 값을 16진수(hexadecimal) 소문자 형태 문자열로 출력하는 방법이다. 

    2. {} format

    {}를 이용한 포맷팅 방법으로 변수의 타입을 신경쓰지 않아도 된다. 

    print("my name is {}".format("1") ) // my name is 1

    이를 이용하면 

    print('{}'.format(n, 'x')) or print('{}'.format(n, 'X')) 나

    print( "{0:x}".format(n) )

    작성하면 된다. 

    위의 경우 어떤 자료형인지 명시를 해주는 경우이다(진수가 바뀌는 예외적인 경우)

    3. f stirng 3.6이상부터 지원 

    a = "abc"

    print(f"my name is {a}") //  my name is abc

    보통 3,1,2 순서로 성능이 좋다고 한다. 

     

     

Designed by Tistory.