如何在Python中将float('nan')转换为二进制?

3

标题已经说明了一切。我知道pickle可以做到这一点,但我不想打开一个文件只为了转换一个数字。我想将float('nan')以其二进制格式发送到网络上。

标题说了一切。我知道pickle可以处理这个问题,但我并不想为了转换一个单独的数字而打开一个文件。我希望能够以二进制格式将float('nan')发送到网络上。
1个回答

8
>>> import struct
>>> struct.pack('d', float('nan'))
b'\x00\x00\x00\x00\x00\x00\xf8\x7f'

如果你想要一个小端格式的双精度(8字节)二进制表示,请参见https://docs.python.org/2/library/struct.html了解如何使用大端和/或单精度(4字节)格式的所有细节。

1
每次看到你的回答,我都能学到新东西。 - Alex
@Alex,这让我感到非常高兴,谢谢你的分享!-) - Alex Martelli
一个小调整:我建议在 struct.pack 格式中使用 '<d',以确保小端字节序。目前,结果的字节序取决于平台。 - Mark Dickinson

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