我最近在Ruby中看到了&
符号,经过一段时间的搜索,我无法在线找到解释。
如:
62 & 15 #=> 14
答案 0 :(得分:6)
Ruby中的这个Fixnum#&
method works as a bitwise and (&
)运算符。
&
(按位 AND
)运算符将其第一个操作数的每个位与第二个操作数的相应位进行比较。如果两个位都为1,则结果的相应位设置为1.否则,它将相应的结果位设置为0.
两个操作数必须具有整数或枚举类型。执行每个操作数的常规算术转换。结果与转换的操作数具有相同的类型。
因为按位AND运算符具有关联和可交换属性,所以编译器可以在包含多个按位AND运算符的表达式中重新排列操作数。
以下示例显示了a,b的值以及&的结果。 b表示为16位二进制数:
bit pattern of a 0000000001011100
bit pattern of b 0000000000101110
bit pattern of a & b 0000000000001100
注意: 按位AND(&)不应与逻辑AND混淆。 (&&)运算符。例如,
1 & 4 evaluates to 0
,而
1 && 4 evaluates to true
答案 1 :(得分:5)