我查看了Stack Overflow并且还没有找到答案。我的位掩码值从0x0000000000000001
到0x0200000000000000,
,每个值表示我的对象中可以修改的字段。修改后的字段将其对应的掩码值按位或逐一运算,以具有可在以后解释的单个64位值。但是我遇到了困难,因为Javascript按位运算符将操作数转换为32位有符号值。我试图写无符号的64位无符号方法来模仿按位OR和按位AND,但遇到了困难。我的第一次尝试是:
_bitwiseOr64: function(a, b) {
var aHi = (a >> 32);
var aLo = (a & 0xffffffff);
var bHi = (b >> 32);
var bLo = (b & 0xffffffff);
return (((aHi | bHi) << 32) + (aLo | bLo));
}
如果a = 0
和b = 0x80000000
,我希望_bitwiseOr64的结果为0x80000000
(无符号,因为我在这里处理位掩码)。我没有得到那个结果。有人可以提供帮助吗?
答案 0 :(得分:3)
看看这个图书馆:http://google.github.io/closure-library/api/class_goog_math_Long.html
它们具有多个按位功能,如add(other)和/或其他支持64位的功能。
对于Node.JS,您可以使用Long.js