存储特定位数所需的字节数

number of bytes required to store a certain number of bits

我有一个函数将一些位作为输入,returns存储这些位所需的字节数:

unsigned int get_number_of_bytes(unsigned int number_of_bits);

因此,假设每个字节 8 位:

一个可能的实现是:

unsigned int get_number_of_bytes(unsigned int number_of_bits)
{
    if (number_of_bits == 0)
        return 0;
    else
        return (number_of_bits - 1) / CHAR_BIT + 1;
}

CHAR_BIT通常等于8。)

如何在没有 if(并且没有 ?: 运算符的情况下编写此函数的代码?

unsigned int get_number_of_bytes(unsigned int number_of_bits)
{
    return (number_of_bits + CHAR_BIT - 1) / CHAR_BIT;
}