python - 将x位二进制数切换为一个字节(8位)

时间:2017-09-13 16:46:14

标签: python binary truncate

我正在使用python 2.7。我需要将二进制数从x位截断到8位(字节) 我会写一个例子,说明我想做些什么来说清楚,还因为stackexchange不会因为某些原因让我写下我的问题,例如:

0b1010101010100101 -> 0b10100101

我尝试了这种解决方法:将其转换为字符串,然后将其作为子字符串剪切,但我没有设法使其正常工作

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

但我面临很多问题,将其转换回二进制数... 你怎么会截断它?

2 个答案:

答案 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

尝试的内容