mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-08 02:04:31 +08:00
Add Reverse Bits Algo in Bit-Manipulation (#4299)
Co-authored-by: BamaCharanChhandogi <b.c.chhandogi@gmailcom>
This commit is contained in:

committed by
GitHub

parent
07945c7704
commit
251157059c
@ -0,0 +1,20 @@
|
||||
package com.thealgorithms.bitmanipulation;
|
||||
|
||||
/**
|
||||
* Converts any Octal Number to a Binary Number
|
||||
* @author Bama Charan Chhandogi
|
||||
*/
|
||||
|
||||
public class ReverseBits {
|
||||
|
||||
public static int reverseBits(int n) {
|
||||
int result = 0;
|
||||
int bitCount = 32;
|
||||
for (int i = 0; i < bitCount; i++) {
|
||||
result <<= 1; // Left shift the result to make space for the next bit
|
||||
result |= (n & 1); // OR operation to set the least significant bit of result with the current bit of n
|
||||
n >>= 1; // Right shift n to move on to the next bit
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.thealgorithms.bitmanipulation;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class ReverseBitsTest {
|
||||
|
||||
@Test
|
||||
void testReverseBits() {
|
||||
assertEquals(0, ReverseBits.reverseBits(0));
|
||||
assertEquals(-1, ReverseBits.reverseBits(-1));
|
||||
assertEquals(964176192, ReverseBits.reverseBits(43261596));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user