检查标志是否设置为大整数

贝尔斯托斯

我有两个标志“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');
}
塞尔坎

我认为两者都使用BigIntn在数字后添加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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章