在px4中进场可以看到
#define MASK_USE_GPS (1<<0)
bool not_using_gps = !(_params.fusion_mode & MASK_USE_GPS) || !_control_status.flags.gps;
所以我们需要知道这个(1<<0)到底是多少,且&是啥,咋运算出来的
-
1<<0
1用二进制表示位0000 0001,0不太好说,直接用1<<7,1<<7表示0100 0000即这个1向左移动了7位变成128 -
&
&是位运算与,如有两二进制数 0000 0001 和0100 0000 与0100 0001运算得到0000 0001和0100 0000
即&运算是二进制同位的数进行&&,只有同位数上都为1,才返回1
总结:
这样一个二进制数就做8种bool值,这是一个好精妙的设计啊