我正在使用python 2.7。我需要将二进制数从x位截断到8位(字节) 我会写一个例子,说明我想做些什么来说清楚,还因为stackexchange不会因为某些原因让我写下我的问题,例如:
0b1010101010100101 -> 0b10100101
我尝试了这种解决方法:将其转换为字符串,然后将其作为子字符串剪切,但我没有设法使其正常工作
str_cs = str(bin(cs))
str_cs = str_cs[to_cut:]
但我面临很多问题,将其转换回二进制数... 你怎么会截断它?
答案 0 :(得分:6)
只需使用bitwise &
,其中包含所有1
s的字节:
cs = cs & 0b11111111
# or, if you're feeling daring:
cs &= 0b11111111
答案 1 :(得分:2)
Phydeaux解决方案要好得多,但我在做:
>>> cs=0b1010101010100101
>>> cs=int(bin(cs)[-8:], 2)
>>> bin(cs)
'0b10100101'
根据您使用str