operator - Uso del símbolo de caret(^) en Ruby
ruby ||= (1)
1 ^ 1
# => 0
1 ^ 2
# => 3
5 ^ 6
# => 3
Estos son los resultados que estoy obteniendo. ¿Puede alguien por favor explicar cómo funciona?
Es un operador XOR a nivel de bit.
Para cada bit en la representación binaria de los operandos, un XOR bit a bit obtendrá un bit 1 si uno de los bits correspondientes en los operandos es 1, pero no ambos, de lo contrario, el XOR obtendrá un bit 0. Aquí hay un ejemplo:
5 = 101
6 = 110
5 ^ 6 = 011 = 3