mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
34 lines
899 B
Java
34 lines
899 B
Java
package com.thealgorithms.bitmanipulation;
|
|
|
|
/**
|
|
* This class provides a method to find the first differing bit
|
|
* between two integers.
|
|
*
|
|
* Example:
|
|
* x = 10 (1010 in binary)
|
|
* y = 12 (1100 in binary)
|
|
* The first differing bit is at index 1 (0-based)
|
|
* So, the output will be 1
|
|
*
|
|
* @author Hardvan
|
|
*/
|
|
public final class FirstDifferentBit {
|
|
private FirstDifferentBit() {
|
|
}
|
|
|
|
/**
|
|
* Identifies the index of the first differing bit between two integers.
|
|
* Steps:
|
|
* 1. XOR the two integers to get the differing bits
|
|
* 2. Find the index of the first set bit in XOR result
|
|
*
|
|
* @param x the first integer
|
|
* @param y the second integer
|
|
* @return the index of the first differing bit (0-based)
|
|
*/
|
|
public static int firstDifferentBit(int x, int y) {
|
|
int diff = x ^ y;
|
|
return Integer.numberOfTrailingZeros(diff);
|
|
}
|
|
}
|