逻辑或按位或可互换?

时间:2016-08-31 20:46:52

标签: c arduino bit-manipulation

说我有2个比较

if ((length >= 524288) | (length == 0))
{
      //do something...
}

VS

if ((length >= 524288) || (length == 0))
{
      //do something...
}

这些是同样的事情,因为当你按位或0001 0000它变成1? 在这种情况下还有任何特殊的理由使用按位OR吗?

1 个答案:

答案 0 :(得分:2)

在这种情况下,bitwise = logical,因为两个测试都返回0或1。

与单|的唯一区别在于,无论第一次测试的结果如何,测试的两个部分都将被执行=>在这里使用||