gpt4 book ai didi

python - 如何在 python 中翻转一个字节?

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

我正在尝试解码一个由反转字节组成的文件。目前,我的代码读取并复制文件,但我想在写出副本之前编辑一些字节。以字符串格式打印文件的二进制文件后,它看起来像:

b'r\x00\x00\x00\x06\x00P\x00\x14\x00\x10\x00\x0e\x00P\x00\x15\x00)7\xf8y(=(\xdb(\x8e\x08\x00

……等等。我想像这样翻转读出为\x** 的字节:

\x01 →\x10 ,\x81 →\x18 ,\x40 →\x04 ,\xae →\xea

最佳答案

您想将字节的前 4 位与后 4 位交换。只需通过一些移位和掩码在列表理解中重建 bytes 数组:

>>> b = b'r\x00\x00\x00\x06\x00P\x00\x14\x00\x10\x00\x0e\x00P\x00\x15\x00)7\xf8y(=(\xdb(\x8e\x08\x00'

>>> bytes(((x<<4 & 0xF0) + (x >> 4)) for x in b)
b"'\x00\x00\x00`\x00\x05\x00A\x00\x01\x00\xe0\x00\x05\x00Q\x00\x92s\x8f\x97\x82\xd3\x82\xbd\x82\xe8\x80\x00"

关于python - 如何在 python 中翻转一个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43111877/

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