我有两个标志“32”和“64”,需要检查它们是否包含在整数变量中。
因此,我正在使用以下代码,该代码适用于“小整数”。例如,如果整数变量是“33555378”,它会输出正确的结果。
现在我遇到的问题是整数变量是“12261800583900083122”并且脚本似乎无法正常工作。
如何检查标志是否正确设置为大整数?
这是JSFiddle。
代码:
var flags = {
Horde: 32,
Allianz: 64,
}
var flag = 12261800583900083122;
if ((flag & flags.Horde) == flags.Horde && (flag & flags.Allianz) == flags.Allianz) {
console.log('Both');
} else if ((flag & flags.Allianz) == flags.Allianz) {
console.log('Allianz');
} else if ((flag & flags.Horde) == flags.Horde) {
console.log('Horde');
} else {
console.log('Nothing');
}
我认为两者都使用BigInt
(n
在数字后添加)flags
并且flag
可以解决您的问题;
var flags = {
Horde: 32n,
Allianz: 64n,
}
var flag = 12261800583900083122n;
if ((flag & flags.Horde) == flags.Horde && (flag & flags.Allianz) == flags.Allianz) {
console.log('Both');
} else if ((flag & flags.Allianz) == flags.Allianz) {
console.log('Allianz');
} else if ((flag & flags.Horde) == flags.Horde) {
console.log('Horde');
} else {
console.log('Nothing');
}
结果如下Horde
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句