[英]number of bytes required to store a certain number of bits
我有一個函數,將許多位作為輸入,並返回存儲這些位所需的字節數:
unsigned int get_number_of_bytes(unsigned int number_of_bits);
因此,假設每字節8位:
number_of_bits
= 0 =>函數返回0 number_of_bits
= 1 =>函數返回1 number_of_bits
= 8 =>函數返回1 number_of_bits
= 9 =>函數返回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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.