寫程序,用到位判斷,開始時候,我是這么寫的
if (a & 0x02) == 1)
{
}
else
{
}
a的第二位如果為1,則執行if中的程序,否則執行else中的程序
但編譯完以后,事情的發展卻殘酷的背離了我的初衷。
結果改成以下語句后,事情才得到了平息。
if ((a >> 1 & 0x01) == 1)
{
}
else
{
}
先把位移1位,然后在和“1與操作”,這個時候,就可以得到想要的結果了
原因可能是由于c語言的語法造成的 ,但具體的原因由于沒有看書,也不知道,寫這個的目的是給同樣困惑的小盆友們一個提示,在遇到這樣的情況,試試以下的方法。