HOWTO · Python

Python에서 바이너리를 16진수로 변환

이 자습서에서는 Python에서 바이너리를 16진수로 변환하는 방법에 대해 설명합니다.

이 페이지의 내용

이진법과 16진법은 파이썬에서 숫자 값을 표현할 수 있는 많은 숫자 체계 중 두 가지입니다. 이 튜토리얼은 Python에서 Binary를 Hex로 변환하는 데 사용할 수 있는 다양한 방법에 중점을 둡니다.

Python에서 바이너리를 16진수로 변환하는 사용자 정의 함수 생성 및 사용

while 루프의 도움으로 사용자 정의 함수를 생성하고 Python에서 Binary의 값을 Hex로 변환하도록 배치할 수 있습니다.

다음 코드는 사용자 정의 함수를 사용하여 Python에서 Binary를 Hex로 변환합니다.

print("Enter the Binary Number: ", end="")
bnum = int(input())

h = 0
m = 1
chk = 1
i = 0
hnum = []
while bnum != 0:
    rem = bnum % 10
    h = h + (rem * m)
    if chk % 4 == 0:
        if h < 10:
            hnum.insert(i, chr(h + 48))
        else:
            hnum.insert(i, chr(h + 55))
        m = 1
        h = 0
        chk = 1
        i = i + 1
    else:
        m = m * 2
        chk = chk + 1
    bnum = int(bnum / 10)

if chk != 1:
    hnum.insert(i, chr(h + 48))
if chk == 1:
    i = i - 1

print("\nEquivalent Hexadecimal Value = ", end="")
while i >= 0:
    print(end=hnum[i])
    i = i - 1
print()

위의 코드는 다음과 같은 출력을 제공합니다.

Enter the Binary Number: 0101101
Equivalent Hexadecimal Value = 2D

int() 및 hex() 함수를 사용하여 Python에서 Binary를 Hex로 변환

이 방법을 구현하기 위해 int() 및 hex() 함수를 모두 사용합니다.

먼저 int() 메서드를 사용하여 주어진 이진수를 정수 값으로 변환합니다. 이 과정이 끝나면 hex() 함수는 새로 찾은 정수 값을 16진수 값으로 변환합니다.

다음 코드는 int() 및 hex() 함수를 사용하여 Python에서 Binary를 Hex로 변환합니다.

print(hex(int("0101101", 2)))

위의 코드는 다음과 같은 출력을 제공합니다.

0x2d

binascii 모듈을 사용하여 Python에서 Binary를 Hex로 변환

Python은 Python에서 Binary를 Hex로 변환하는 데 사용할 수 있는 Python 3부터 binascii 모듈을 제공합니다. 이 방법이 작동하려면 binascii 모듈을 수동으로 Python 코드로 가져와야 합니다.

이 메서드는 텍스트 파일을 열고 파일의 내용을 가져와 hexlify() 함수를 사용하여 파일에 있는 주어진 데이터의 hex 값을 반환할 수 있습니다.

다음 코드는 binascii 모듈을 사용하여 Python에서 Binary를 Hex로 변환합니다.

import binascii

bFile = open("ANYBINFILE.exe", "rb")
bData = bFile.read(8)
print(binascii.hexlify(bData))

format() 함수를 사용하여 Python에서 Binary를 Hex로 변환

format() 함수는 Python에서 문자열 형식을 구현할 수 있는 방법 중 하나입니다. format() 함수는 {} 중괄호 안에 형식이 지정된 문자열을 제공하는 데 사용됩니다.

다음 코드는 format() 함수를 사용하여 Python에서 Binary를 Hex로 변환합니다.

print("{0:0>4X}".format(int("0101101", 2)))

위의 코드는 다음과 같은 출력을 제공합니다.

002D

f-strings를 사용하여 Python에서 Binary를 Hex로 변환

Python 3.6과 함께 도입된 이 방법은 Python에서 문자열 형식을 구현하는 비교적 최신 방법입니다. 최신 및 최신 버전의 Python에서 사용할 수 있습니다.

다른 두 피어인 % 기호 및 str.format()보다 더 빠르고 이해하기 쉽기 때문에 더 효율적입니다. 또한 다른 두 가지 방법보다 빠른 속도로 Python에서 문자열 형식을 구현하는 데 도움이 됩니다.

다음 코드는 f-strings를 사용하여 Python에서 Binary를 Hex로 변환합니다.

bstr = "0101101"
hexstr = f"{int(bstr, 2):X}"
print(hexstr)

위의 코드는 다음과 같은 출력을 제공합니다.

2D