簡體   English   中英

自動調整 dynamic_bitset 的大小

[英]Auto resizing the dynamic_bitset

所以我有一個數字向量,例如 4、20、1500、4、270。第一個元素將占用 3 位,第二個 5 位,第三個 11 位,依此類推。 如何將 bit_size 設置為根據元素將占用的位數自動更改? 喜歡,

int bit_size = 4; 
boost::dynamic_bitset<> B(bit_size, 4);

如果您想自動計算您的值占用的最小位數,那么您可以執行以下操作:

#include <cmath>
...
int value_to_write = 4;
int min_bits = std::floor(1 + std::log2(value_to_write));
boost::dynamic_bitset<> B(min_bits, value_to_write);

請注意,dynamic_bitset ctor 中的第一個參數是位數,而不是值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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