mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-06 09:06:51 +08:00
Add OneBitDifference
algorithm (#5864)
This commit is contained in:
@ -0,0 +1,32 @@
|
||||
package com.thealgorithms.bitmanipulation;
|
||||
|
||||
/**
|
||||
* This class provides a method to detect if two integers
|
||||
* differ by exactly one bit flip.
|
||||
*
|
||||
* Example:
|
||||
* 1 (0001) and 2 (0010) differ by exactly one bit flip.
|
||||
* 7 (0111) and 3 (0011) differ by exactly one bit flip.
|
||||
*
|
||||
* @author Hardvan
|
||||
*/
|
||||
public final class OneBitDifference {
|
||||
private OneBitDifference() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if two integers differ by exactly one bit.
|
||||
*
|
||||
* @param x the first integer
|
||||
* @param y the second integer
|
||||
* @return true if x and y differ by exactly one bit, false otherwise
|
||||
*/
|
||||
public static boolean differByOneBit(int x, int y) {
|
||||
if (x == y) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int xor = x ^ y;
|
||||
return (xor & (xor - 1)) == 0;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user