學過單片機的人肯定知道,既可以用彙編語言編寫單片機程序也可以用C語言來編單片機寫程序,其實C語言能支持彙編語言的大部分運算,因此C語言也支持彙編中的按位運算,可以說C語言既有高級語言的特點,又有低級語言的功能,正因為此使得C語言運用很廣泛。
一、位運算操作符:
前面已經提到過一些關于位操作符的簡要說明,分别有:按位與操作符(&)、按位或(|)、位取反(~)、按位異或(^)、左移(<<)以及右移(>>),下面對每個作簡要說明:
①、按位與(&):此運算符是雙目運算符,功能是把參與運算的兩數對應的二進制位進行與操作,隻有對應的位都為1時才返回1,其餘返回0,如38&81=?,首先把他們轉換為二進制數,38二進制形式為00100110,81二進制形式為01010001,然後進行按位與操作:00100110&01010001=00000000(十進制數0),因此得到38&80=0。
其實按位與的其中一個用途就是清零,當然還有保留指定位,如98要保留後四位,則可以與上00001111,又如要保留98的1、3、5、7位,那麼可以與上01010101,對應位為1即可。
循環左移的實現:首先呢,有一變量int z,然後将x的高n位保存到z的低n位中,基本整型變量一般是32位(不同機器可能有所不同),怎麼實現呢?要想把x的高n位保存到z的低n位中,那就先把x向右移動32-n位,然後直接賦給z就可以了,即z=x>>(32-n),而後将x左移n位,低位以0補齊,即y=x<<n,低位以0補齊,而後通過與z按或運算,y=y|z就可以得到循環左移n位的結果。至于循環右移隻需将上面的左移跟右移符号颠倒一下就可以實現。,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!