有什么用?&在编程语言?

时间:2011-09-15 01:04:11

标签: java groovy

我在许多编程语言中看到&的使用,因为我喜欢groovy很多,我尝试使用以下代码来查找&的使用:

​a = 1 ;
println a & 2​

我将输出设为0。当我更改a的值时,我会得到不同的答案。

所以任何人都可以说简单英语中的Groovy等编程语言中使用&,可能只用一种语言的简单例子吗?

提前致谢。

2 个答案:

答案 0 :(得分:7)

&通常是按位和(在整数参数上)或非短路逻辑和(在布尔参数上)。

按位 - 并返回一系列位(通常表示为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

在允许运算符重载的语言中,库有时会重载&以进行集合交集或元素位交叉。

答案 1 :(得分:4)

在Google中搜索“Groovy Operator”,第一个结果产生:http://groovy.codehaus.org/Operators

  

通常,所有运算符supported in Java在Groovy中都是相同的。

进一步在http://download.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

bitwise AND   &

在Google中搜索“按位与”,第一个结果是:http://en.wikipedia.org/wiki/Bitwise_operation#AND

  

     

按位AND采用两个相等长度的二进制表示   对每对相应位执行逻辑AND运算。   对于每对,如果第一位为1,则结果为1,第二位为1   位是1;否则,结果为0.例如:

    0101 (decimal 5)
AND 0011 (decimal 3)
  = 0001 (decimal 1)

完成所有工作只需不到5分钟。