gpt4 book ai didi

c++ - 位技巧和魔术

转载 作者:行者123 更新时间:2023-11-30 05:14:35 24 4
gpt4 key购买 nike

我正在用 C++ 编写一个程序,它必须尽可能地精简。我需要一些关于 if/else 语句的帮助。这是代码:

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

我在这里做的是:验证某个位是否设置为 1 并且我计算出一些东西,如果不是,我将其设置为 1。有什么方法可以将我验证的 2 行组合起来以及我在 if 正文中将位设置为 1 的位置?

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

我在想像这样的事情:

if (lines |= .... )

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

抱歉我的英语不好和这个愚蠢的请求,但我想不出办法去做,这让我发疯。

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

最佳答案

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

关于c++ - 位技巧和魔术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43377037/

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