Ruby Tutorial Ruby Resources
Python Java C++ C C# PHP R SQL DS Algo InterviewQ

Ruby - Bitwise XOR and assignment operator



The Bitwise XOR and assignment operator (^=) assigns the first operand a value equal to the result of Bitwise XOR operation of two operands.

(x ^= y) is equivalent to (x = x ^ y)

The Bitwise XOR operator (^) is a binary operator which takes two bit patterns of equal length and performs the logical exclusive OR operation on each pair of corresponding bits. It returns 1 if only one of the bits is 1, else returns 0.

Bit_1Bit_2Bit_1 ^ Bit_2
000
101
011
110

The example below describes how bitwise XOR operator works:

50 ^ 25 returns 16

     50    ->    110010  (In Binary)
   ^ 25    ->  ^ 011001  (In Binary)
    ----        --------
     43    <-    101011  (In Binary)  

The code of using Bitwise XOR and assignment operator (^=) is given below:

x = 50
y = 25

#Bitwise XOR and assignment operation
x ^= y

#Displaying the result
puts("x = #{x}")

The output of the above code will be:

x = 43

Example: Swap two numbers without using temporary variable

The bitwise XOR and assignment operator can be used to swap the value of two variables. Consider the example below.

def swap(x, y)
  puts("Before Swap:")
  puts("x = #{x}")
  puts("y = #{y}")

  #Swap technique
  x ^= y
  y ^= x
  x ^= y

  puts("\nAfter Swap:")
  puts("x = #{x}")
  puts("y = #{y}")
end

swap(10, 25)

The above code will give the following output:

Before Swap:
x = 10
y = 25

After Swap:
x = 25
y = 10

❮ Ruby - Operators

5