標題有點誤導。基本上,我有一大堆數字在一個巨大的列表中有幾種不同的格式。我傳遞了它的值和類型,並期望將它們解壓縮並將它們轉換爲HEX字符串。將元組轉換爲未知類型的十六進制
我的最新嘗試是:
realVal = '0x%08x' % struct.unpack(evalType, (rawVal))
凡realVal應該是十六進制數是多少的真正值,並在我的代碼後使用。 evalType是數字rawVal的代碼字母類型,而rawVal是直接從二進制文件中翻譯的原始值。通過查看詞典來接收evalType。但是當這個值是一個浮點數時,它會中斷,但是在我運行的前100K情況下,這個值是一個整數,這很好。
於是,我就值做首先轉換成整數:
realVal = '0x%08x' % int (struct.unpack(evalType, (rawVal)))
但是,這並不工作,因爲顯然struct.unpack(evalType,(rawVal))是touple,根據錯誤信息。
另外,我發現,從浮點數轉換爲十六進制可以通過float.hex()來完成,所以我在if語句添加和我嘗試:
realVal = struct.unpack(evalType, (rawVal)).hex()
,當我知道的值是一個浮點數,它打破並且說touples沒有.hex()函數。
所以,現在我知道我正在處理一個問題,我不知道爲什麼它的工作很好,當內部的值是一個整數,爲什麼它崩潰時,它是一個浮動,以及如何解決它。
一些示例輸入和示例輸出將會很有用... –