最近經常碰到位運算,現對常見的位運算總結如下:
1、位移運算符
>>:稱為按位右移運算符,將左邊數的二進制按位向右移指定的位數。
<<:稱為按位左移運算符,將左邊數的二進制按位向左移指定的位數。
位移運算符作用于其左側的變量,其右側的表達式的值是移動的位數,運算結果是移動后的變量結果。
例如:
b=a<<2,a的值左移兩位并賦值給b,而a本身的值不改變。
向左移位在低位上補0,向右移位在高位上補0。右移時可以保持結果的符號位,也就是右移時,如果最高位為1,是符號位,則補1而不是補0。
右移運算符常常用來實現整數除法運算,左移運算符用來實現整數乘法運算。其中用來實現乘法和除法的因子必須是2的冪次。
2、位邏輯運算符
&:稱為按位與運算符,兩個位都為1時,結果為1,否則為0。
|:稱為按位或運算符,只要其中有一個為1,則結果為1,否則為0。
^:按位異或運算符,兩個位不相同時,結果為1,否則為0。
~:按位補運算符,這是一個單目運算符,當為1時結果為0,當為0時結果為1。
以上屬于按位邏輯運算符,只能用于整型表達式。通常用于對整型變量進行位的設置、清零、取反、以及對某些選定的位進行檢測。
例如:
設置第4位為1,而其他位保持不變,可以使用按位邏輯或運算
a = a | 0x08,
a與00001000做或運算之后,a的第4位被設置為1,而其他位不變
要設置其他位為1,做法類似.改變或值即可.
又如:
設置第4位為0,而其他位保持不變,可以使用按位邏輯與運算
a = a & 0xF7,
a與11110111做與運算之后,a的第4位被設置為0,而其他位不變
要設置其他位為0,做法類似.改變與值即可.
新聞熱點
疑難解答
圖片精選