11
嗨即时通讯工作的东西,要求我访问特定/位的范围。我决定使用bitset,因为它很容易访问特定的位,但我可以提取一整个位的范围?in bitset,我可以使用“to_ulong”来指定特定的位数范围吗?
嗨即时通讯工作的东西,要求我访问特定/位的范围。我决定使用bitset,因为它很容易访问特定的位,但我可以提取一整个位的范围?in bitset,我可以使用“to_ulong”来指定特定的位数范围吗?
方法A:
return (the_bitset >> start_bit).to_ulong();
方法B(比方法A在我的机器上快了100倍):
unsigned long mask = 1;
unsigned long result = 0;
for (size_t i = start_bit; i < end_bit; ++ i) {
if (the_bitset.test(i))
result |= mask;
mask <<= 1;
}
return result;
'operator []'应该更快,因为没有像'test()'那样的边界检查。 – 2017-05-15 21:21:18
您可能要接受给出了答案。 – 2011-11-15 14:58:19