我試圖從Javascript中的十六進制數字中提取最後32位。爲什麼在JavaScript中使用Masking準確無法獲得值?
var hex = 0x6C469F301DBBC30;
var last32bit = (hex & 0xFFFFFFFF).toString(16);
log(last32bit); //gives 1dbbc40
結果是1DBBC40
。難道這不應該是1DBBC30
? 另外如何在1DBBC40
之前保留0
?
我試圖從Javascript中的十六進制數字中提取最後32位。爲什麼在JavaScript中使用Masking準確無法獲得值?
var hex = 0x6C469F301DBBC30;
var last32bit = (hex & 0xFFFFFFFF).toString(16);
log(last32bit); //gives 1dbbc40
結果是1DBBC40
。難道這不應該是1DBBC30
? 另外如何在1DBBC40
之前保留0
?
號碼類型具有完全相同18437736874454810627(即,2 64 -2 3) 值
你的數目過大而無法完全由數字表示。如果你想準確地表示大數字,你應該尋找一個大號碼庫。也許one of these libraries將滿足您的需求。
所以我猜沒有解決方法? –
@SamikSengupta不支持原生JavaScript數字設施。 – Pointy
你可以試試'(「00000000」+ last32bit).slice(-8)'來保存 – mplungjan
謝謝。我想這是一個粗略的解決方法。但它會服務於我的目的。該過濾器仍然不準確。 –
這個數字對於64位尾數來說太大了。 – Pointy