0

我为含糊而道歉,但我们的老师特别告诉我们,如果我们提出问题,请这样做

我有 9 个标志要存储为整数。
即,0b111111111他们都会被绊倒。

现在我有一个 if 语句添加到 int 如果它被绊倒。IE。

if (flag0=="tripped" && flag0=="hasn't been tripped before") flagInt += 1;

if (flag1=="tripped" && flag1=="hasn't been tripped before") flagInt += 2;

if (flag2=="tripped" && flag2=="hasn't been tripped before") flagInt += 4;

等等,

我很难编写代码来检查标志是否被触发。我怎么能这样做?

编辑:我考虑过将整数转换为二进制表示的字符串,所以我可以用括号来检查,但我必须对相当多的数据执行此操作,这会使其太慢

4

1 回答 1

3

获取位n状态(将位 n 返回为 0 或 1):

(value>>n) & 1

设置位n状态(标志为 0 或 1):

value = (value & ~(1 << n)) | (flag << n)
于 2013-09-08T00:58:20.453 回答