gpt4 book ai didi

python:来自 struct pack() 的意外行为

转载 作者:太空狗 更新时间:2023-10-30 01:58:36 24 4
gpt4 key购买 nike

我在使用 struct.pack() 打包整数时遇到问题。

struct.pack("BIB", 1, 0x1234, 0) 

我很期待

'\x01\x00\x00\x034\x12\x00'

但是我得到了

'\x01\x00\x00\x004\x12\x00\x00\x00'

我可能在这里遗漏了一些东西。请帮忙。

最佳答案

'\x01\x00\x00\x004\x12\x00\x00\x00'
^ this '4' is not part of a hex escape

实际上是一样的:

'\x01\x00\x00\x00\x34\x12\x00\x00\x00'

因为“4”的ASCII码是0x34。

因为您使用了默认( native )格式,Python 使用数据的 native 对齐方式,所以第二个字段对齐到偏移量 4,并在它之前添加了 3 个零。

要获得更像您想要的结果,请使用格式 >BIB<BIB (分别用于大端或小端)这给你 '\x01\x00\x00\x12\x34\x00''\x01\x34\x12\x00\x00\x00' .这些都不是您指定的,因为您给出的示例不是 0x1234 的正确大端或小端表示。

另请参阅:部分 Byte Order, Size, and Alignment在文档中。

关于python:来自 struct pack() 的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25785702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com