python——将一个x位的二进制数截成一个字节(8bit)
python - cut a x-bit binary number to a byte (8bit)
我正在使用 python 2.7。我需要将二进制数从 x 位截断为 8 位(字节)
我将写一个我想做的事情的例子来说明这一点,而且因为 stackexchange 出于某种原因不会让我写下我的问题,例如:
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
Phydeaux 的解决方案好多了,但我在做 :
>>> cs=0b1010101010100101
>>> cs=int(bin(cs)[-8:], 2)
>>> bin(cs)
'0b10100101'
基于您尝试使用 str
我正在使用 python 2.7。我需要将二进制数从 x 位截断为 8 位(字节) 我将写一个我想做的事情的例子来说明这一点,而且因为 stackexchange 出于某种原因不会让我写下我的问题,例如:
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
Phydeaux 的解决方案好多了,但我在做 :
>>> cs=0b1010101010100101
>>> cs=int(bin(cs)[-8:], 2)
>>> bin(cs)
'0b10100101'
基于您尝试使用 str