Является ли битсет правильным контейнером для манипулирования большими данными и последующего перемещения результатов в память? - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь сгенерировать 512-битный шаблон, в котором слово 0xdeadbeef продолжает вращаться (смещено влево на единицу) на 512-бит, каждый раз, когда я хочу направить данные в память.

Baiscally, 0xffffffff ... .... deadbeefffffffff (всего 512 бит). Продолжайте сдвигать мертвую часть по одному и после каждого раза записывать весь шаблон в память.

Является ли bitset правильным контейнером в этом случае? Мне удалось использовать все необходимые операции (<< ^ ... et c), но я не могу найти способ перевести 512-битные данные в 64-битные переменные длиной для записи в память. </p>

1 Ответ

0 голосов
/ 14 марта 2020

Bitset на самом деле не контейнер, а класс представления. Внутренне это может быть представлено массивом или списком bool. Единственный способ экспортировать его содержимое в массив - это сделать это вручную. Возможно, более эффективно выполнять вышеупомянутое смещение без набора битов, при условии, что все, что вам нужно, это фактическое смещение, которое дает вам адрес шаблона, остальные биты будут по умолчанию установлены в 1.

Вопрос в том, как должна быть порядковая последовательность обрабатывается в вашем приложении: представляет ли positiob шаблона последовательность lsb-msb внутри каждого слова, или она должна быть выровнена по байту.

...