shell位操作符

2022-02-12 00:53:44 字數 1915 閱讀 2074

位操作符

. 位操作符在shell

指令碼中極少使用

。它們最主要的用途看起來就是操作和test

從sockets

中 讀出的變數."bit flipping"

與編譯語言的聯絡很緊密

,比如c/c++

,在這種語言中它可以

執行得足夠快.(

原文有處

on the fly

,我查了一下

,好像是沒事幹的意思

,沒理解

) <<        左移1

位(每次左移都將乘

2) <<=       

左移幾位,=

號後邊將給出左移幾位

let "var <<= 2"

就是左移2位

(就是乘

4) >>        右移1

位(每次右移都將除

2) >>=       

右移幾位

&       

按位與

&=       

按位與賦值

|       

按位或

|=       

按位或賦值

~       

按位非

!       

按位否?(

沒理解和上邊的

~有什麼區別?),

感覺是應該放到下邊的邏輯操作中

^       

按位異或

xor

^=       

異或賦值

邏輯操作

: &&       

邏輯與

1 if [ $condition1 ] && [ $condition2 ]

2 #

與:  if [ $condition1 -a $condition2 ]

相同 3 #

如果condition1

和condition2

都為true

,那結果就為

true.

4  5 if [[ $condition1 && $condition2 ]]    #

也可以.

6 #

注意&&

不允許出現在

[ ... ]中.

注意:&&

也可以用在

and list中(

見25章)

,但是使用的時候需要依賴上下文

. ||       

邏輯或

1 if [ $condition1 ] || [ $condition2 ]

2 #

與:  if [ $condition1 -o $condition2 ]

相同 3 #

如果condition1

或condition2

為true

,那結果就為

true.

4  5 if [[ $condition1 || $condition2 ]]    #

也可以

6 #

注意||

不允許出現在

[ ... ]中.

注意:bash

將test

每個連線到邏輯操作的狀態的退出狀態

. 例:

if [ "$a" -eq 24 ] && [ "$b" -eq 47 ]

與if [ "$a" -eq 24 -a "$b" -eq 47 ]

得到同一結果。

a=1let "a=a|0x4"

echo $a

if [ $((a|0x4)) -eq 5 ];then

echo "ada"

fi原文:

c語言操作符 位操作符 移位操作符

1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...

位運算操作符

與運算,二元操作符,對兩個操作員的每個二進位制位進行與運算,運算規則為 1 1 1 1 0 0 0 1 0 0 0 0 異或運算,二元操作符,對兩個操作員的每個二進位制位進行異或運算,運算規則為 1 1 0 1 0 1 0 1 1 0 0 0 或運算,二元操作符,對兩個操作員的每個二進位制位或運算,...

c 位操作符

我們知道,任何資訊在計算機中都是以二進位制的形式儲存的。位操作符就是對資料按二進位制進行運算的操作符。c 語言中的位操作符有 與 或 異或 取補 左移 右移 其中,取補只有乙個運算元,而其它的位操作符都有兩個運算元。這些運算都不會產生溢位。位操作符的運算元為整型或者是可以轉換為整型的任何其它型別。與...