в bitset я могу использовать “to_ulong” для определенного диапазона битов?

привет я работаю над чем-то, что требует меня для получения доступа к определенному / диапазону битов. я решил использовать bitset, потому что легко получить доступ к определенным битам, но я могу извлечь целый диапазон битов?

13
задан manlio 15 June 2016 в 09:42
поделиться

1 ответ

Метод 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;
11
ответ дан 2 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: