簡體   English   中英

&在編程語言中有什么用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM