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

问题描述:

我正在使用python 2.7。我需要将一个二进制数字从x位截断为8位(字节) 我会写一个我想要做的事情的例子来说明问题,也是因为stackexchange不会因为某些原因而写我的问题,例如:python - 将x位二进制数切成一个字节(8位)

0b1010101010100101 -> 0b10100101 

我尝试以下解决方法:将其转换为字符串,然后切割它作为一个子串,但我并没有设法使其工作

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

但我面对很多问题将其转换回二进制数... 你会如何截断它?

只需使用一个bitwise &所有1 s的字节:

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

一如既往最简单的解决方案...谢谢 –

+0

我不得不等待几分钟,股权交换规则 –

Phydeaux的解决方案要好得多,但我是这样做的:

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

根据你与str

试图
+0

这是我试图做没有好的结果 –

+1

我只是现在试过了,我不知道用int()选择基地的可能性,再次感谢 –