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