我有一個看起來像這樣的python字串:
byte_string = "01100110"
我想把它變成一個像這樣的位元組:
byte_byte = some_function(byte_string) # byte_byte = 0b01100110
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
看來您想將該字串轉換為單個數字。為此,您只需轉換為int以 2 為基數即可。
byte_byte = int(byte_string, 2)
uj5u.com熱心網友回復:
在對問題進行了更多思考之后,我想我最初誤解了您的意圖,這反映在我下面的“先前答案”中。
我認為這個先前的 SO 問題也可以解決您的問題,因為聽起來您想將 8 位字串轉換為單個位元組。而且,正如@Mark Ransom 所指出的,它看起來像一個十進制代碼:
int(byte_string, 2)
output: 102
或者像這樣作為對應的ascii字符:
chr(int(byte_string, 2))
output: 'f'
----基于將字串編碼為位元組陣列的假設的先前答案------
您可以將字串編碼為這樣的位元組,如果需要,可以選擇傳遞特定的編碼:
byte_string = "01100110"
byte_string.encode("utf-8")
bytes(byte_string, 'utf-8')
結果:
b'01100110'
鏈接到用于編碼/解碼字串的 python 檔案。
另一種選擇是創建一個位元組陣列:
bytearray(byte_string, 'utf-8')
output: bytearray(b'01100110')
這是另一個可能有用的StackOverflow 執行緒,它描述了位元組和位元組陣列物件之間的區別,以及它們在字串與字串之間的轉換。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/402988.html
標籤:
