C語言算術運算子與位運算子

2021-09-11 22:28:20 字數 885 閱讀 2508

1.算術操作符:+,-,*,%,/

前兩個不用多說,* 即是乘號,%是求餘(取模)運算,注意:%兩側運算元需均為整數;若除數與被除數符號不同,則結果符號與被除數保持一致。如-14/3=-2;14/-3=2;/是求商運算,注意:若/的除數與被除數均為整數將執行舍位(即捨去小數中任何部分)如14/3=4;若除數與被除數符號不同,則結果符號與被除數保持一致。如-14/3=-4;14/-3=4;若運算中有乙個為實型,則結果為雙精度實型。如6/3.0=2.0;此外除數不能為0,若除數為0,編譯器無法計算出結果,程式將在執行時崩潰。

2.位運算子(只能作用於整形運算元,及只能作用於帶符號或無符號的char,short,int,long型別):&  按位與(and),|  按位或(or),^  按位異或(xor),<<   左移,>>  右移,~  按位取反。

面對位運算子首先應將運算元轉化為二進位制數,然後再進行操作。如a=01010001,b=10001100,則a&b=00000000;a|b=11011101;a^b=11011101(相同為零,不同為一);~a=10101110;

按位與&經常用於遮蔽某些二進位制位,如n=n&0177,其中0177是八進位制轉化為二進位制即01111111;所以該語句把n中除了7個低二進位制數外其他各位均置零。

按位或 | 常用於將某些二進位制置一,如n=n|077,其中077是八進位制轉化為二進位制即00111111,則該語句將n後六位均置一。

常見此類情況還有n=n&~077,則將後六位設定為零。

對於<<,>>(運算元必須為整型)  。《即二進位制數向左移位,移除左邊界的位丟失,右邊空出來的用零補齊。>>有兩種移位方式,一是無符號數執行邏輯移位(左邊移入位用0填充),另乙個是有符號數(依賴編譯器決定移位方式)可能是算術移位(即左側用符號位0或1填充),也可能是邏輯移位。注意a<<5,指a左移5位,而非5左移a位。

PHP基礎 運算子 算術運算子 位運算子

1 將強制轉換為數字作加法運算 例 a 33 b 45.0 echo a b a b gettype a b 2 將強制轉換為數字作減法運算 例 a 33 b 45 echo a b a b gettype a b a 33.70 b 45.00 echo a b a b gettype a b 3...

Java運算子 算術 邏輯 位運算子

二元操作符型別提公升問題 一元操作符int a 3 int b a 先賦值,後自增 int c a 先自增,再賦值布林邏輯表達符 邏輯與 邏輯或 邏輯非 邏輯與和邏輯或採用短路的方式,從左向右執行,如果確定值,則不再計算下去。boolean 1 2 2 3 0 沒有拋異常,沒有執行3 0位運算子 取...

C語言 運算子與 運算子

我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...