2017-09-13 60 views
2

我正在使用python 2.7。我需要將一個二進制數字從x位截斷爲8位(字節) 我會寫一個我想要做的事情的例子來說明問題,也是因爲stackexchange不會因爲某些原因而寫我的問題,例如:python - 將x位二進制數切成一個字節(8位)

0b1010101010100101 -> 0b10100101 

我嘗試以下解決方法:將其轉換爲字符串,然後切割它作爲一個子串,但我並沒有設法使其工作

str_cs = str(bin(cs)) 
str_cs = str_cs[to_cut:] 

但我面對很多問題將其轉換回二進制數... 你會如何截斷它?

回答

5

只需使用一個bitwise &所有1 s的字節:

cs = cs & 0b11111111 
# or, if you're feeling daring: 
cs &= 0b11111111 
+0

一如既往最簡單的解決方案...謝謝 –

+0

我不得不等待幾分鐘,股權交換規則 –

2

Phydeaux的解決方案要好得多,但我是這樣做的:

>>> cs=0b1010101010100101 
>>> cs=int(bin(cs)[-8:], 2) 
>>> bin(cs) 
'0b10100101' 

根據你與str

試圖
+0

這是我試圖做沒有好的結果 –

+1

我只是現在試過了,我不知道用int()選擇基地的可能性,再次感謝 –

相關問題