> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 바이너리를 ASCII로 또는 그 반대로 효율적으로 변환하는 방법은 무엇입니까?

Python에서 바이너리를 ASCII로 또는 그 반대로 효율적으로 변환하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-28 10:06:13
원래의
110명이 탐색했습니다.

How to Efficiently Convert Binary to ASCII and Vice Versa in Python?

바이너리를 ASCII로 변환하고 그 반대로 변환

디지털 데이터를 인코딩하고 디코딩하려면 바이너리와 ASCII 간의 변환이 필수적입니다. 다음은 언급한 문제를 해결하면서 Python에서 이 변환을 효과적으로 수행하는 방법입니다.

문자열을 이진수로 변환

문자열을 이진수로 변환하려면 다음을 사용할 수 있습니다.

import binascii
bin(int(binascii.hexlify('hello'), 16))
로그인 후 복사

이것은 문자열을 16진수 표현으로 변환한 다음 이진수로 변환하여 동일한 출력을 생성합니다.

2진수를 문자열로 변환

2진수를 문자열로 변환하려면 다음을 활용하세요.

n = int('0b110100001100101011011000110110001101111', 2)
binascii.unhexlify('%x' % n)
로그인 후 복사

이렇게 하면 2진수 문자열이 16진수로 변환됩니다. 값을 입력한 다음 이를 원래 문자열로 디코딩합니다.

Python 3.2 호환성

Python 3.2 이상에서는 다음 방법을 사용할 수 있습니다.

bin(int.from_bytes('hello'.encode(), 'big'))
n = int('0b110100001100101011011000110110001101111', 2)
n.to_bytes((n.bit_length() + 7) // 8, 'big').decode()
로그인 후 복사

이 방법은 int.from_bytes() 및 int.to_bytes() 함수를 활용합니다. 바이너리 데이터를 효율적으로 처리하는 방법을 제공합니다.

유니코드 문자 지원 (Python 3)

Python 3에서 유니코드 문자를 처리하려면 다음을 사용하세요.

def text_to_bits(text, encoding='utf-8', errors='surrogatepass'):
    bits = bin(int.from_bytes(text.encode(encoding, errors), 'big'))[2:]
    return bits.zfill(8 * ((len(bits) + 7) // 8))

def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'):
    n = int(bits, 2)
    return n.to_bytes((n.bit_length() + 7) // 8, 'big').decode(encoding, errors) or '<pre class="brush:php;toolbar:false">import binascii

def text_to_bits(text, encoding='utf-8', errors='surrogatepass'):
    bits = bin(int(binascii.hexlify(text.encode(encoding, errors)), 16))[2:]
    return bits.zfill(8 * ((len(bits) + 7) // 8))

def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'):
    n = int(bits, 2)
    return int2bytes(n).decode(encoding, errors)

def int2bytes(i):
    hex_string = '%x' % i
    n = len(hex_string)
    return binascii.unhexlify(hex_string.zfill(n + (n &amp; 1)))
로그인 후 복사
'

이 함수는 지정된 인코딩 및 오류 처리를 사용하여 텍스트를 인코딩 및 디코딩하여 올바른 처리를 보장합니다. 유니코드 문자.

단일 소스 Python 2/3 호환 버전

이 코드는 Python 2 및 3과 모두 호환됩니다.

이 코드는 바이너리 및 ASCII 변환을 위한 일관된 함수 세트를 제공하면서 두 Python 버전을 모두 처리합니다.

위 내용은 Python에서 바이너리를 ASCII로 또는 그 반대로 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿