[英]Lua - Handling 64 bits number on 32 bit lua compiler
目前我正在嘗試解碼數據(使用lua)。 我有的數據是64位十六進制(大端)。
該特定數字需要轉換為小端。 除此之外,稍后將基於內部邏輯應用其他按位操作。
現在,最初我認為事情會很簡單,記住我可以使用bitop並簡單地應用我想要的任何按位操作。
現在,不幸的是,我( 並請注意我無法改變這一點 ),32位lua編譯器,因此,我不能簡單地使用這些操作。
我想問兩個問題:
如果我有十六進制
800A000000000000
如何在這個十六進制數字上使用32位按位操作(特別是在這種情況下,像上面共享的庫中的bit.bswap,bit.rshift,bit.lshift這樣的操作)? 是否可以將此數字拆分為2個部分,然后對每個部分應用操作,然后再將它們合並在一起? 如果是這樣的話,怎么樣?
在提出這個問題之前,我發現並閱讀了同一主題的其他參考文獻,但所有這些都與具體案例有關(除非您熟悉該主題,否則很難理解):
在對該主題進行更詳細的調查之后,測試並與其他人發表了與此主題相關的意見,並發布答案:
在這種特定情況下,你有32位或64位編譯器(或設備)真的沒關系。 您能夠基於lua doc表示的最大整數: 64位浮點數只能表示高達53位精度的整數 ,而我用作示例的十六進制數字大於此值。
這意味着任何類型的通用位操作都不適用於這些數字。
基本上,這個問題可以在以下方面重建:“ 我如何在完全64位的lua中使用逐位操作? ”。
唯一的解決方案是為這個使用庫或自己實現它(將64位數分成兩個32位數並自己實現位運算符)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.