這是一個賦值語句,把等式右邊的值賦給左邊;
先來看左邊是怎么運算的,
由於移位運算符<<的優先級大於位運算符|,所以先計算BUF[1]左移八位,然后再或上BUF[2],
或的操作可以理解為兩個數相加;通俗理解的話可以舉個列子,
假設BUF[1]的值為0000 0001b(為方便描述,故用二進制表示) ,左移八位后變成10000 0000b ,BUF[2]的值為1 ,然后兩者相加變為10000 0001 b
這是算術優先級的問題吧。這兩個都是雙目運算符,而移位運算符的優先級是大於位運算符的,所以你只要先將BUF[1]<<8,然后結果或上BUF[2]
數據拆包發送后又合成嗎/, 串口通信一般就是8位, 想發送個16位的數據就需要拆包,高八位 第八位裝在兩個8位的變量里。接收到之后再進行合成。 你的代碼就是將BUF[1]中的數作為高位,BUF[2]中的數作為低位 ,合成的位數放進YRR[0]