存储特定位数所需的字节数
number of bytes required to store a certain number of bits
我有一个函数将一些位作为输入,returns存储这些位所需的字节数:
unsigned int get_number_of_bytes(unsigned int number_of_bits);
因此,假设每个字节 8 位:
number_of_bits
= 0 => 函数 returns 0
number_of_bits
= 1 => 函数 returns 1
number_of_bits
= 8 => 函数 returns 1
number_of_bits
= 9 => 函数 returns 2
一个可能的实现是:
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;
}
我有一个函数将一些位作为输入,returns存储这些位所需的字节数:
unsigned int get_number_of_bytes(unsigned int number_of_bits);
因此,假设每个字节 8 位:
number_of_bits
= 0 => 函数 returns 0number_of_bits
= 1 => 函数 returns 1number_of_bits
= 8 => 函数 returns 1number_of_bits
= 9 => 函数 returns 2
一个可能的实现是:
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;
}