Я знаю, что верно следующееЕсть ли способ выполнить круговое смещение бита в C#?
int i = 17; //binary 10001
int j = i << 1; //decimal 34, binary 100010
Но, если вы перемещаетесь слишком далеко, биты опадают конца. Там, где это происходит, речь идет о размере целого числа, с которым вы работаете.
Есть ли способ выполнить смену так, чтобы биты вращаются на другую сторону? Я ищу одну операцию, а не цикл for.
Где можно было бы использовать операцию такого типа? Какова цель создания бит-поворота? Мне не нужно знать, но меня просто интересует постоянно расширяющееся знание. Keith – 2008-10-07 14:32:31
очень хороший вопрос. Я просто проверил сгенерированный код, и компилятор C# не генерирует код, который использует команды вращения процессора (не то, что архитектура x86 имеет их с 8086 ...). Это позор. C делает эту оптимизацию. Также вращение очень важно для задач криптографии и dsp. – 2009-06-08 01:45:30