gpt4 book ai didi

javascript - 在单个整数中存储 30 多个标志

转载 作者:行者123 更新时间:2023-12-03 05:32:56 25 4
gpt4 key购买 nike

我必须将 30 多个标志 (0/1) 存储到一个整数中。我可以使用如下所示的按位运算符在 Javascript 中创建 30 个标志掩码

var FLAG_1 = 1 << 0; // 1
var FLAG_2 = 1 << 1; // 2
...
...
var FLAG_30 = 1 << 30;

var user1 = FLAG_1 | FLAG_16;

console.log(FLAG_1 & user1); // true

这很好用。但我无法创建超过 30 个标志,因为 1 << 31相反(赞美或负数)。

有什么办法可以做到这一点吗?

最佳答案

是的。使用多个 32 位数字连接在一起。如果您知道需要少于 64 位数字,请使用两个 32 位数字。获取前 32 位并处理这些标志,然后分别获取第二个 32 位并处理这些标志。

var test = '0421';

for( var i=0; i < test.length; i += 2 ) {
flags = parseInt( test.substr(i,2), 10 );
console.log(flags);
// do comparisons here
// call function doStuff(i, flags)
}

我不确定您的初始输入值是多少。我从一个字符串开始,它可以是任意数量的 00 - 31 组。每个字符串都可以通过调用函数来完成工作、传递迭代器和标志来处理。

关于javascript - 在单个整数中存储 30 多个标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40860764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com