为什么在JavaScript中使用Masking后获得的值不正确?

时间:2014-07-02 12:19:19

标签: javascript hex

我试图在Javascript中从十六进制数中提取最后32位。

var hex = 0x6C469F301DBBC30;
var last32bit = (hex & 0xFFFFFFFF).toString(16);
log(last32bit); //gives 1dbbc40

结果是1DBBC40。这不应该是1DBBC30吗? 另外,如何在0之前保留1DBBC40

1 个答案:

答案 0 :(得分:3)

ECMA standard说:

  

数字类型恰好是18437736874454810627(即2 64 -2 53 +3)   值

您的号码太大,无法用数字表示。如果您希望准确表示大数字,您应该寻找一个大数字库。也许one of these libraries会满足您的需求。