在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值,這是乙個好精妙的設計啊
C C 位操作 位運算
在c語言中,可以單獨操控變數的位 bit 一般高階語言不會處理這級別的細節,c在提供高階語言便利的同時,還能為組合語言所保留的級別上工作,這使其成為編寫裝置驅動程式和嵌入式 的首選語言。目錄 二進位制整數 binary 有符號整數 八進位制 octal 十六進製制 hex 位運算子 按位與 的用途 ...
C C 移位運算
c c 移位運算 一 移位運算子及其規則 移位運算子就是在二進位制的基礎上對數字進行平移,是在補碼的基礎上進行操作的。按照平移的方向和填充數字的規則分為三種 左移 帶符號右移 無符號右移 左移運算子的規則 1 int型別數值實際移位的次數是和32的餘數,移位33次和移位1次得到的結果相同 例如int...
位運算與移位運算
位運算指的是進行二進位制位的運算 位運算子說明 取反 按位與 按位或 按位異或 左移運算子,左移一位等於乘二 右移運算子,右移一位相當於除2取商 按位取反 按位與 按位或 按位異或的 執行操作 int a 7 0111 int b 8 1000 system.out.println a b 按位與結...