使用struct.pack将numpy.float32打包成4个字节
大家好,我在使用 struct.pack 函数打包 numpy.float32 时遇到了一些麻烦。
f32 = 38.2
struct.pack('f', f32)
38.2 的十六进制表示形式为 32 位,为 0x4218CCCD。但是,当我使用 python 终端运行前面的代码(导入适当的模块后)时,输出为:
'\xcd\xcc\x18B'
我不明白为什么它省略了应该在 B 之前的 \x42。
我正在运行 32 位版本64 位机器上的 python 2.7。有什么想法吗?
提前致谢。
Hey all, I'm having a little trouble packing a numpy.float32 using the struct.pack function.
f32 = 38.2
struct.pack('f', f32)
The hexadecimal representation of 38.2, in 32 bits, is 0x4218CCCD. however, when I use the python terminal to run the preceding code (after importing the appropriate modules), the output is:
'\xcd\xcc\x18B'
I don't understand why it's leaving out the \x42 that should be before the B.
I am running 32 bit version of python 2.7 on a 64 bit machine. Any ideas?
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你得到了你想要的。
You got what you wanted.
\x42
对应于 ASCIIB
。\x42
corresponds to ASCIIB
.