写程序,用到位判断,开始时候,我是这么写的
if (a & 0x02) == 1)
{
}
else
{
}
a的第二位如果为1,则执行if中的程序,否则执行else中的程序
但编译完以后,事情的发展却残酷的背离了我的初衷。
结果改成以下语句后,事情才得到了平息。
if ((a >> 1 & 0x01) == 1)
{
}
else
{
}
先把位移1位,然后在和“1与操作”,这个时候,就可以得到想要的结果了
原因可能是由于c语言的语法造成的 ,但具体的原因由于没有看书,也不知道,写这个的目的是给同样困惑的小盆友们一个提示,在遇到这样的情况,试试以下的方法。