[英]What's the use of & in Programming languages?
我已經看到&
在許多編程語言中的用法,並且由於我非常喜歡groovy,所以我嘗試了以下代碼來查找&
的用法:
a = 1 ;
println a & 2
我得到的輸出為0
。 當我改變的值a
我得到不同的答案的。
因此,任何人都可以用簡單的英語說出諸如Groovy之類的編程語言中&
的用處, &
可能用任何一種語言來舉例說明?
提前致謝。
&
通常是按位與(在整數參數上)或非短路邏輯與(在布爾參數上)。
按位運算-並返回只有通用集合中的位的一系列位(通常表示為int
類型)
18 == 10010
6 == 00110
18 & 6 == 2 == 00010
這似乎就是您的Groovy代碼中正在發生的事情。 1 & 2 == 0
因為1和2沒有共同的位。
非短路邏輯,與&&
類似,但
if (f() && g()) // g is only called if f returns false
if (f() & g()) // g is called even when f returns false
在允許運算符重載的語言中,庫有時會重載&
以設置交集或逐元素位交集。
在Google中搜索“ Groovy運算符”,第一個結果產生: http : //groovy.codehaus.org/Operators
通常,Java支持的所有運算符在Groovy中都是相同的。
進一步在http://download.oracle.com/javase/tutorial/java/nutsandbolts/operators.html中 :
bitwise AND &
在Google中搜索“按位與”,第一個結果是: http : //en.wikipedia.org/wiki/Bitwise_operation#AND
和
按位與運算采用相等長度的兩個二進制表示形式,並對每對對應位執行邏輯與運算。 對於每一對,如果第一位為1而第二位為1,則結果為1;否則,結果為1。 否則,結果為0。例如:
0101 (decimal 5) AND 0011 (decimal 3) = 0001 (decimal 1)
只需不到5分鍾即可完成所有工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.