總結一下,自己腦子短路時可以檢視一下。
邏輯運算子:
&:位 『與』 ;
^: 位 『異或』
|: 位 『或』
~: 位 『非』,取反
移位運算子:
<<: 左移
>>: 右移
邏輯位運算都是以 (bit)為單位。
位取反的操作符為「~」,0變成1,1變成0,需要注意的是,位取反運算並不會改變運算元的值,它只是再記憶體中進行的。如果想要改變需要重新賦值。
#include#includevoid main()
#include#include/*
取反操作,
不管是 8 位 16位 清除最後一位(末尾清零)
& ~1 通用
*/void main(void)
位與運算的操作符為&,1 & 1=1 1 & 0=0 0 & 1=0 0 & 0=0
#include#includevoid main()
輸出:
與0相與都是0 ,可以實現按位清零
//實現安位清零 二進位制位與0相與執行清零動作
void main()
在c#中 & 操作預設返回 int 型別。要取分有符號和無符號 int 型別。
無符號為:uint 型別 資料範圍
0 – 4294967295
最大16進製制標識為:0xffff ffff
二進位制:1111 1111 1111 1111 1111 1111 1111 1111
有符號為:int 型別 資料範圍
-2147483648 – 2147483647
最大16進製制標識為 0x7fff ffff
二進位制:0111 1111 1111 1111 1111 1111 1111 1111 (最前面為符號位 0正數,1負數)
與1相與 值不變獲取指定位:
//獲取指定位 二進位制位與1相與保持某些位不變。
位或運算的操作符為|,將對兩個運算元的每一位進行或運算,位「或」運算的準則如下:
//或運算 :與1相或 都變成1 ;1|1=1 1|0=1
//與0相或 結果不變 0|1=1 0|0=0
位異或運算的操作符為^,將對兩個運算元的每一位進行異或運算。通俗地講,如果位「異或」運算的兩個位相同(同為0或同為1),結果為0,若兩個位不同(乙個為0,另乙個為1),結果為1,對應的準則為:
1 ^ 1=0 1 ^ 0=1 0 ^ 1=1 0 ^ 0=0 (相同為 0 ;不同為 1)
#include#include//異或運算 : 1^1=0 ; 0^0=0 ; 1^0=1 ; 0^1=1 (相同為0 不同為1)
實現反**異或可以實現反轉 :與1相異或 1^1=0 ,0 ^ 1 =1 。無論是0 或 1 與1相異或都會發生逆轉
//異或可以實現反轉 :與1相異或 1^1=0 0^1=1
//無論是0 或 1 與1相異或都會發生逆轉
//指定位反轉
//與0相異或保持不變 :0^0=0 0^1=1 無論是 1或0 與0發生相異或都不會變化
//異或實現交換兩個變數
左移 <<
右移 >>
//左移注意資料溢位
void main()
void main()
c語言位運算
c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位的結果值為1,否則為0 按位或 兩個相應的二進位制位中只要有乙個為1,該位的結果值為1 按位異或 若參加運算的兩個二進位制位值相同則為0,否則為1 取反 是一元運算子,用來對乙個二進位制數按位取反,即將0變1...
C語言位運算
c語言位運算 位運算應用口訣 清零取反要用與,某位置一可用或 若要取反和交換,輕輕鬆鬆用異或 移位運算 1 它們都是雙目運算子,兩個運算分量都是整形,結果也是整形。2 am p 3 amp amp amp qu ot 右 移 右邊 的位被擠 掉。對於 左邊移出 的空位,如果是正 數則空位 補0,若 ...
C語言位運算
位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作 運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位...