package cn.iocoder.yudao.framework.common.thealgorithms.bitmanipulation;

///**
// * Converts any Octal Number to a Binary Number
// * @author Bama Charan Chhandogi
// */
//
//public final class ReverseBits {
//    private 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;
//    }
//}


/**
 * 将任何八进制数转换为二进制数
 * @作者 Bama Charan Chhandogi
 */

public final class ReverseBits {
    private ReverseBits() {
    }

    // 反转整数 n 的位
    public static int reverseBits(int n) {
        int result = 0;
        int bitCount = 32; // 整数的位数
        for (int i = 0; i < bitCount; i++) {
            result <<= 1; // 左移结果，为下一个位制造空间
            result |= (n & 1); // 使用 OR 操作将 n 的当前位设置为结果的最低有效位
            n >>= 1; // 右移 n，移动到下一个位
        }
        return result;
    }
}

