1
嘿所有,我有點麻煩使用struct.pack函數打包numpy.float32。使用struct.pack打包一個numpy.float32到4個字節
f32 = 38.2
struct.pack('f', f32)
在32位中,38.2的十六進制表示是0x4218CCCD。然而,當我使用Python終端運行上述代碼(輸入相應的模塊後),輸出爲:
'\xcd\xcc\x18B'
我不明白爲什麼它留出的\ X42應該是在B之前。
我在64位機器上運行python 2.7的32位版本。有任何想法嗎?
在此先感謝。
哦,我看到了,我沒有意識到,由於\ x42在ascii範圍內,它會打印ascii字符,儘管被打包爲一個浮點數。 – Trey 2011-06-03 19:01:15
Python不會跟蹤如何創建字符串。它將始終以相同的方式打印特定的字節串。 – MRAB 2011-06-03 19:18:11