gpt4 book ai didi

c++ - Boost dynamic_bitset - 将整数值放入一系列位中

转载 作者:搜寻专家 更新时间:2023-10-31 01:15:34 25 4
gpt4 key购买 nike

我有一个 7 字节/56 位位集,在构造时将第一个位设置为一个:

boost::dynamic_bitset<> b(56, 1);

构造后,我想将一个整数值(比如 2019)放入第 4 位到第 15 位。我很好奇在 boost 中是否有一种简单的方法可以在不进行按位运算的情况下执行此操作?基本上,我想将一系列位设置为我知道足够小以适合这些位的整数值。感谢您的任何建议。

最佳答案

boost::dynamic_bitset<>提供的功能少得多。我认为唯一的可能性是使用普通循环:

template <typename Bitset>
void set_in_range(Bitset& b, unsigned value, int from, int to)
{
for (int i = from; i < to; ++i, value >>= 1)
b[i] = (value & 1);
}

boost::dynamic_bitset<> b(56, 1);
set_in_range(b, 2019, 4, 15);

关于c++ - Boost dynamic_bitset - 将整数值放入一系列位中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9966814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com