单一和(&)符号在Ruby中意味着什么?

ste*_*iel 1 ruby

&最近在Ruby 看到了这个标志,经过一段时间的搜索,我无法在网上找到解释.

如:

62 & 15 #=> 14
Run Code Online (Sandbox Code Playgroud)

Aru*_*hit 6

Fixnum#&方法&在Ruby中用作bitwise和()运算符.

按位AND运算符&

&(按位 AND)操作其第一操作数的每个比特进行比较,以所述第二操作数的相应位.如果两个位均为1,则结果的相应位设置为1.否则,它将相应的结果位设置为0.

两个操作数必须具有整数或枚举类型.执行每个操作数的常规算术转换.结果与转换的操作数具有相同的类型.

由于按位AND运算符具有关联和可交换属性,因此编译器可以在包含多个按位AND运算符的表达式中重新排列操作数.

以下示例显示a,b的值,以及表示为16位二进制数的a&b的结果:

bit pattern of a        0000000001011100
bit pattern of b        0000000000101110
bit pattern of a & b    0000000000001100
Run Code Online (Sandbox Code Playgroud)

注意:按位AND(&)不应与逻辑AND混淆.(&&)运算符.例如,

1 & 4 evaluates to 0
Run Code Online (Sandbox Code Playgroud)

1 && 4 evaluates to true
Run Code Online (Sandbox Code Playgroud)


Seb*_*olm 5

&是一个有点和.

也可以看看: