比特技巧和魔法

时间:2017-04-12 18:28:14

标签: c++ bits

我用C ++编写程序,它必须尽可能少。我需要一些if / else语句的帮助。这是代码:

if (lines & 1 << ((d & 1) * 30 + 5 * l + c)) {
    cout << "Invalid";
} else {
    lines |= 1 << ((d & 1) * 30 + 5 * l + c);
}

我在这里做的是:验证一个位是否设置为1并且我是cout某些东西,如果它不是,我将它设置为1.有什么方法我可以组合我验证的2行和if在if中设置位的位置吗?

lines & 1 << ((d & 1) * 30 + 5 * l + c)
lines |= 1 << ((d & 1) * 30 + 5 * l + c)

我想象的是:

if (lines |= .... )

它应该做的是:验证位是否为1并进入if体,如果它不存在(或者它已经存在),则将其设为1。

抱歉我的英语很差,这个愚蠢的要求,但我无法找到办法,这让我发疯。

P.S:当我输入一个方程时,有没有任何网站/计算器可以给我一个布尔公式?例如:3 .. .. = -1。我需要操作数和操作符。

1 个答案:

答案 0 :(得分:1)

if (lines == (lines|= mask)) cout << "Invalid";