ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 진수 변환 정리
    공부/Python 2023. 3. 3. 13:26

    파이썬은 기본적으로 10진수이기 때문에

    다른 진수는 다음과 같이 접두어라는게 붙는다고 한다.

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

    첫번째 방법으로는 내장함수를 이용하는법이 있다.

    - bin(), oct(), hex() 

    test = 100
    
    b = bin(test)			
    # 10 to 2
    	
    o = oct(test)			
    # 10 to 8
    
    h = hex(test)			
    # 10 t0 16
    
    print(b)
    print(o)
    print(h)
    
    
    
    #0b1100100
    #0o144
    #0x64

     

    두 번째로는 format() 함수를 사용해서 변환하는 방법이다.

     

    jinsu = 100
    #2진수
    b = format(jinsu, 'b')
    #8진수
    o = format(jinsu, 'o')
    #16진수
    x = format(jinsu, 'x')
    
    test = "{0:#b}, 8진수: {0:#o}, 10진수: {0:#d}, 16진수: {0:#x}".format(100)
    
    
    print(test)
    print(b,o,x)
    
    
    #0b1100100, 8진수: 0o144, 10진수: 100, 16진수: 0x64
    #1100100 144 64

    세 번째로는 진수 형태를 이용하는 방법

    2진수, 8진수 , 16진수에서 10진수로 변환하는 방법 

    b = int('0b111100', 2)
    o = int('0o74', 8)
    h = int('0x3c', 16)
    
    print(b)
    print(o)
    print(h)

    int 함수의 첫 번째 인자는 변환하고자 하는 진수이고

    두 번째 인자는 "진수 형태"이다.

    진수값을 잘 못입력하면 에러가 발생하게 된다. 

     

     

     

    추가로 

    입력받은 값을 유니코드 값으로 변환하는 방법은 ord를 사용한다. 

     

    n = ord(input())  #입력받은 문자를 10진수 유니코드 값으로 변환한 후, n에 저장한다.

    ord( ) 는 어떤 문자의 순서 위치(ordinal position) 값을 의미한다.  
    실제로 각각의 문자들에는 연속된 정수 값이 순서에 따라 부여 되어 있다. A:65, B:66, C:67 .... 
    ord(c) : 문자 c 를 10진수로 변환한 값 

     

    반대로는

    chr( )는 정수값->문자, ord( )는 문자->정수값 형태로 바꿔주는 서로 반대 방향으로 바꾸어 주는 기능을 한다.

     

Designed by Tistory.