c++ reverse bits

#include <iostream>

unsigned int reverseBits(unsigned int num) {
    unsigned int numOfBits = sizeof(num) * 8;
    unsigned int reverseNum = 0;

    for (int i = 0; i < numOfBits; i++) {
        if ((num & (1 << i)) != 0) {
            reverseNum |= 1 << ((numOfBits - 1) - i);
        }
    }

    return reverseNum;
}

int main() {
    unsigned int num = 23;
    unsigned int reversedNum = reverseBits(num);

    std::cout << "Original number: " << num << std::endl;
    std::cout << "Reversed number: " << reversedNum << std::endl;

    return 0;
}