布林運算,位運算,邏輯運算

2021-10-21 12:16:07 字數 686 閱讀 6129

c語言支援按位布林運算,也就是同樣有與,或,取反,異或。

乙個數,異或它本身=0。通過異或的這一特點,我們可以不需要第三個值就能將兩個值調換。「這種交換方式並沒有效能上的優勢,它僅僅是乙個智力遊戲。」——《深入理解計算機系統》

假設一開始有兩個數x=a,y=b

y=x⊕y;   >>    y=a⊕b

x=x⊕y;   >>    x=a⊕(a⊕b)=b

y=x⊕y;   >>    y=b⊕(a⊕b)=a

c語言還提供了邏輯運算子||(邏輯或)、&&(邏輯與)和!(邏輯非)。邏輯運算認為所有非零的引數都表示真(true,返回表示為1),0表示假(false,返回表示為0)。

大部分情況下容易把邏輯非和取反當成一樣的,舉例說明區別:

x==y的等價表示式,相等返回1,否則返回0,可以用位運算和邏輯運算實現。

!(x⊕y)                    像乙個表情……

當x=y的時候,異或之後的結果是0,邏輯非,返回1;當x!=y的時候,異或之後的結果是個非0值,邏輯非(這個時候如果用的取反,只會把每位取反,達不到返回0的效果),返回0。

邏輯運算 位運算

今天有人問我,邏輯運算是什麼,現在來解釋一下 邏輯運算就是相當於資訊競賽基礎工具中的一位的位運算 符號對應關係 wedge cap 交 and 與運算 vee cup 並 or 或運算 neg not 非 xor 異或運算 x k 將x的二進位制右移k位 如 x 10110 2 時,k 1,那麼x ...

Shell基本運算子之布林運算子 邏輯運算子

shell基本運算子 摘自與菜鳥教程 1 布林運算子 非運算,表示式為true 則返回false 否則返回 true false o或運算,有乙個表示式為true 則返回 true 1 lt 20 o 2 gt 10 a與運算,兩個表示式都為true 才返回true 1 lt 20 a 2 gt 1...

邏輯位運算與邏輯運算

兩者非常容易混淆,其實這是截然不同的兩種運算.1.邏輯位運算 與運算 1 2 0 0000 0001 0000 0010 0000 0000 0 或運算 1 2 3 0000 0001 0000 0010 0000 0011 3 按位求反 運算,異或 運算略.移位 左移,右移 運算略.2.邏輯運算 ...