簡體   English   中英

存儲一定位數所需的字節數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM