**Objective**– Given two numbers, swap both the numbers using XOR operators.

**Example**:

X = 4, Y = 8 Output: X = 8, Y= 4

**Approach**: XOR operator

There are many ways to swap two numbers but here we will discuss a solution to swap numbers using XOR(^) operator.

- Say numbers are x and y.
- Do x = x XOR y, this will set only the bits which are set either in x or in y. store it in x.
- Do y = x XOR y, this will set the bits which were set in original x so this will store the original value of x into y.
- Do x = x XOR y, this will set the bits which were set in original y so this will store the original value of y into x.
- See the Example below

**Java Code: **

public class SwapNumbers { | |

static void swap(int x, int y){ | |

System.out.println("x: " + x + ", y: " + y); | |

//x : 4 => 0100 | |

//y: 8 => 1000 | |

x = x ^ y; | |

//x:1100, y: 1000 | |

y = x ^ y; | |

//x:1100, y:0100 | |

x = x ^ y; | |

//x:1000, y:0100 | |

System.out.println("After swapping"); | |

System.out.println("x: " + x + ", y: " + y); | |

} | |

public static void main(String[] args) { | |

int x = 4; | |

int y= 8; | |

swap(x,y); | |

} | |

} |

**Output:**

x: 4, y: 8 After swapping x: 8, y: 4