shajin
shajin

Reputation: 3264

Use of caret symbol (^) in Ruby

1 ^ 1
# => 0

1 ^ 2
# => 3

5 ^ 6
# => 3

These are the results I am getting. Can, please, somebody explain how ^ works?

Upvotes: 27

Views: 9241

Answers (1)

Rafe Kettler
Rafe Kettler

Reputation: 76965

It's a bitwise XOR operator.

For each bit in the binary representation of the operands, a bitwise XOR will get a 1 bit if one of the corresponding bits in the operands is 1, but not both, otherwise the XOR will get a 0 bit. Here's an example:

5     = 101
6     = 110
5 ^ 6 = 011 = 3

Upvotes: 36

Related Questions