首先对不起我的英语。假设我有,
0 // 0
1 // 1
2 // 10
3 // 11
4 // 100
5 // 101
6 // 110
7......................
Run Code Online (Sandbox Code Playgroud)
现在,我可以说 5 有两个(第 3 个和第 1 个)ON 标志。类似地,7 具有三个(第 1、第 2 和第 3 个)ON 标志,依此类推。
现在,假设我有一个输入 2 和 flag1、flag2、..... flagn。我需要在程序上找到只有 flag2 是 ON 的。
你不能,正如你已经在二进制表示中看到的那样。3 可以是 3 或 2+1。所以使用二的幂:
0 // 0000
1 // 0001
2 // 0010
4 // 0100
8 // 1000
Run Code Online (Sandbox Code Playgroud)
然后在检查 的值时5 (0101),您将看到 1 和 4 的位已设置,因此您知道启用了哪些标志。
我不知道确切的 JavaScript 语法,但可以这样做:
FLAG_1 = 1
FLAG_2 = 2
FLAG_3 = 4
FLAG_4 = 8
FLAG_5 = 16
var foo = FLAG_2 | FLAG_5; // Use binary OR (|) to add flags
if (foo & FLAG_5)
{
// Do something that has to be done when FLAG_5 is set
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1325 次 |
| 最近记录: |