0
У меня есть значение UInt64 с некоторыми битами на и некоторые от, например:Shifting набор битов в uint64 справа от их соответствующих байтов
01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101
Как я могу легко сдвинуть установочные биты вправо, например они в правую часть их соответствующих байты, например:
00001111 00001111 00001111 00001111 00001111 00001111 00001111 00001111
Я видел вопросы, которые переместят на битых весь путь справа от 64 разрядных беззнакового целого числа, но я только хочу, чтобы переместить их в право байт, в котором они лежат, если это возможно.
Спасибо.
Существует большая разница между «легкими» и «быстрыми». Очень трудно поверить, что любой найдет легкий путь приемлемым. Создайте массив байтов [256], который отображает все возможные байтовые значения. BitConverter.GetBytes + ToUInt64 для его использования. Легко и быстро, это просто отстой, чтобы печатать в инициализаторе массива. Ваша работа :) –
Является ли это статической перестановкой (в частности, для шаблона, который вы показали) или общей операцией овец и козлов SWAR? – harold
В идеале это должна быть общая операция. – Ward9250