嵌入式C語言之運算子 學習筆記3

2021-10-03 09:51:00 字數 964 閱讀 5743

1、算數操作運算子 +、-、*、/、%

加法:a+b, ab最好是同型別

乘除:乘法在很多cpu中並不支援,乘除法能不用就不用,可能會使執行變差

求模/求餘數: n%m=res[0~(m-1)]

求模應用場景:

得到乙個m進製的乙個個位數

得到乙個迴圈資料結構的下標

2、邏輯運算

返回結果:非0(真)或0(假)

1、||、&&

a||b /= b||a 原因(a若為真則不會執行b 預判斷)

a&&b /= b&&a

2、>, >=, < ,<=

3、! 邏輯取反

對比位運算中取反操作 ~a

4、? : 問好冒號表示式

if else

3、位運算 **

1、移位 <<, >> 乘除法盡量用2^n

右移:除法 除以2

2、&,| 與,或

完成逐位取或遮蔽

取出:a&1–>a

或|:

例:設定乙個資源的bit5為高電平,其他位不變:(bit5為第六位)

int a;

a=a|100000;---->a|(0x1<<5);*****>a|(0x1<:對a的第n位設定為高電平

清除第五位:要保證只有第五位為0其餘都是0,不能用十進位制與

a=a&(~(0x1<

3、^異或、~取反

取反~:

思考:想把456bit設定為101?

4、賦值運算

前面所有的符號都不具備更新能力;在後面加上=就具備自更新

5、記憶體訪問符號

{} ->位址訪問、. 變數訪問 對於連續空間的訪問方法

&、*

C語言之運算子 (筆記)

下表顯示了 c 語言支援的所有算術運算子。假設變數 a 的值為 10,變數 b 的值為 20,則 運算子描述例項 把兩個運算元相加 a b 將得到 30 從第乙個運算元中減去第二個運算元 a b 將得到 10 把兩個運算元相乘 a b 將得到 200 分子除以分母 b a 將得到 2 取模運算子,整...

C語言之位運算子

位運算子分析 1.c語言中的位運算子 c語言中的位運算子直接對bit位進行操作,其效率最高。速度快於四則運算和邏輯運算。2.左移和右移的注意點 左運算元必須為整數型別 char和short被隱式轉換為int後進行移位操作 右運算元的範圍必須為 0,31 左移運算子 將運算數的二進位制位左移 規則 高...

嵌入式C語言 學習筆記

一 位運算 符號運算規則 與 兩個位都為1時,結果才為1 從真假方面看,只有當兩個位都為真時,結果才為真 或 兩個位都為0時,結果才為0 從真假方面看,如果兩個運算物件中相應的乙個位為真或者兩個位都為真,那麼結果為真 異或 兩個位相同為0,相異為1 從真假方面看,如果兩個運算物件中相應的乙個位為真且...