繁体   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