C语言这段代码是什么意思? if(button&1)== 1

我对此感到困惑..那是什么意思。 这段代码会做什么..

if((button & 1)==1)

我试图在网上搜索它,但我找不到一个好的答案..
提前致谢..

按位AND运算符(&)将第一个操作数的每个位与第二个操作数的相应位进行比较。 如果两个位都为1,则相应的结果位设置为1.否则,相应的结果位设置为0.因此,如果(button&1)为1,则if(button & 1)==1计算为true否则求值为false

这个if执行按钮和1的按位“和” ,然后将结果与0进行比较。在essense中按位and当且仅当button的最后一个(最低有效)位是同等的时and它将为1 button是奇怪的。

所以简而言之,如果检查button是否为奇数。

&运算符是按位AND,因此该代码检查按钮中的最低位是否已设置。

通常,为了在查看更高位时具有一致的样式,可以将其与0进行比较。

它检查是否设置了最低位..换句话说, button是偶数还是奇数。

即使这个if(button & 1) wolud也做了同样的事情。