/
NikolayIvkin
/
TheAlgorithms
Обзор
Документация
Войти
/
NikolayIvkin
/
TheAlgorithms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/com/thealgorithms/bitmanipulation/ReverseBits.java
41 строка
1 KB
Hardik Pawar
Enhance docs, add more tests in `ReverseBits` (#5859)
29 окт 2024, 21:17
Не верифицирован
29 окт 2024, 21:17
fd14016
Код
Авторство
О чём код?
package com.thealgorithms.bitmanipulation; /** * This class provides a method to reverse the bits of a 32-bit integer. * Reversing the bits means that the least significant bit (LSB) becomes * the most significant bit (MSB) and vice versa. * * Example: * Input (binary): 00000010100101000001111010011100 (43261596) * Output (binary): 00111001011110000010100101000000 (964176192) * * Time Complexity: O(32) - A fixed number of 32 iterations * Space Complexity: O(1) - No extra space used * * Note: * - If the input is negative, Java handles it using two’s complement representation. * - This function works on 32-bit integers by default. * * @author Bama Charan Chhandogi */ public final class ReverseBits { private ReverseBits() { } /** * Reverses the bits of a 32-bit integer. * * @param n the integer whose bits are to be reversed * @return the integer obtained by reversing the bits of the input */ 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; } }