바이너리와 ASCII 간 변환
제공된 코드는 축소 람다 함수를 사용하여 문자열을 바이너리로 변환합니다. 그러나 바이너리를 다시 ASCII로 변환하는 방법은 즉시 명확하지 않습니다.
Python 2(ASCII 문자의 경우)
[ -~] 범위의 ASCII 문자의 경우 , Python 2는 다음과 같은 쉬운 솔루션을 제공합니다.
import binascii bin(int(binascii.hexlify('hello'), 16)) # Output: '0b110100001100101011011000110110001101111'
프로세스:
n = int('0b110100001100101011011000110110001101111', 2) binascii.unhexlify('%x' % n) # Output: 'hello'
Python 3(모든 유니코드 문자)
Python 3에서는 모든 유니코드 문자에 대한 지원을 도입했습니다. 다음 함수는 통합 변환 인터페이스를 제공합니다.
def text_to_bits(text): bits = bin(int.from_bytes(text.encode(), 'big'))[2:] return bits.zfill(8 * ((len(bits) + 7) // 8)) def text_from_bits(bits): n = int(bits, 2) return n.to_bytes((n.bit_length() + 7) // 8, 'big').decode()
유니코드 인식 변환
마지막으로 Python 2 및 3 호환성을 위해 다음은 단일 소스 코드 조각입니다. 유니코드 변환을 처리하는 코드:
def text_to_bits(text): bits = bin(int(binascii.hexlify(text.encode()), 16))[2:] return bits.zfill(8 * ((len(bits) + 7) // 8)) def text_from_bits(bits): n = int(bits, 2) return int2bytes(n).decode() def int2bytes(i): hex_string = '%x' % i n = len(hex_string) return binascii.unhexlify(hex_string.zfill(n + (n & 1)))
위 내용은 Python에서 바이너리와 ASCII를 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!