將二進位轉換為 ASCII 並傳回
給定的程式碼片段將字串轉換為二進位表示法。為了理解其機制,我們來分析一種替代方法。
Python 2:ASCII 字符範圍
對於[ -~] 範圍內的ASCII 字符,Python 2 提供了一個更簡單的解決方案:
import binascii n = int(binascii.hexlify('hello'), 16) binary_representation = bin(n)
此程式碼將字串'hello'轉換為十六進位表示,然後轉換為二進位表示形式。
反轉轉換
要將二進位表示形式轉換回字串:
n = int('0b110100001100101011011000110110001101111', 2) string_representation = binascii.unhexlify('%x' % n)
這將轉換二進位表示形式傳回十六進位表示形式,然後轉換為原始字串“hello”。
Python 3.2 :
Python 3.2 引進了額外的方法:
n = int.from_bytes('hello'.encode(), 'big') binary_representation = bin(n)
n = int('0b110100001100101011011000110110001101111', 2) string_representation = n.to_bytes((n.bit_length() + 7) // 8, 'big').decode()支援所有Python 3 中的 Unicode 字元:這個函數在文字和二進位表示之間進行轉換,支援 Unicode 字元。
def text_to_bits(text, encoding='utf-8', errors='surrogatepass'): # ... def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'): # ...
以上是如何在 Python 中轉換 ASCII 和二進位表示形式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!