如何在Python中追加两个字节?

6

假设你有b'\x04'b'\x00',如何将它们组合成b'\x0400'

5个回答

18

使用 Python 3:

>>> a = b'\x04'
>>> b = b'\x00'
>>> a+b
b'\x04\x00'

6
0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101

你可以使用这两种操作。 << 8 表示将二进制数向左移动8位或一个字节。 | 表示合并。
a = b'0x04'
a << 8
b'0x0400'

4

Python3 中的另一种替代方案是:

b''.join([a,b])

如果您有一个名为bytes_list的列表,其中包含字节元素,那么您可以像处理普通列表拼接一样处理它。
b''.join(bytes_list)

0
在我的应用程序中,我从传感器接收到一串字节流。我需要将其中两个字节组合起来创建整数值。
Hossein的答案是正确的解决方案。
解决方案与当我们需要位移二进制数字以组合它们时相同,例如如果我们有两个单词组成一个字节,高位为0010,低位为0100。我们不能简单地将它们加在一起,但是如果我们将高位向左移动四个空格,然后或位组合在一起,就可以创建00100100。通过位移高位,我们实际上将其乘以16或10000。
在上面的十六进制示例中,我们需要将高字节向左移动两个数字,在十六进制中0x100等于256。因此,我们可以将高字节乘以256并添加低字节。

-1
它有一个简单的解决方案,如下所示: 0x0400 = 0x04 × 256 + 0x00

1
你可以描述你的答案,使其更有用。 - Vishal Kumar Sahu
是的,每个字节在十进制下最大为255,如果您想合并两个字节,可以像我一样操作。另一种方法是使用“<<”将字节向左移位,并使用“|”进行合并,例如:“0x04 << 8”左移8位或1个字节。 - Hossein Jafari
请编辑您的答案并附加评论。因为评论中的任何细节都不作为答案有用。 - Vishal Kumar Sahu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接