Интернет магазин китайских планшетных компьютеров



Компьютеры - Битовые операции - Битовые сдвиги

23 января 2011


Оглавление:
1. Битовые операции
2. Битовые сдвиги
3. В теории сложности алгоритмов
4. Практические применения



К битовым операциям также относят битовые сдвиги. При сдвиге значения битов копируются в соседние по направлению сдвига. Различают несколько видов сдвигов — логический, арифметический и циклический, в зависимости от обработки крайних битов.

Также различают сдвиг влево и вправо.

Логический сдвиг
Арифметический сдвиг
Циклический сдвиг
Циклический сдвиг через перенос

Логический сдвиг

При логическом сдвиге значение последнего бита по направлению сдвига теряется, а первый приобретает нулевое значение.

Логические сдвиги влево и вправо используются для быстрого умножения и деления на 2, соответственно.

Арифметический сдвиг

Арифметический сдвиг аналогичен логическому, но значение слова считается знаковым числом, представленным в дополнительном коде. Так, при правом сдвиге старший бит сохраняет свое значение. Левый арифметический сдвиг идентичен логическому.

Циклический сдвиг

При циклическом сдвиге, значение последнего бита по направлению сдвига копируется в первый бит.

Также различают циклический сдвиг через бит переноса — при нём первый бит по направлению сдвига получает значение из бита переноса, а значение последнего бита сдвигается в бит переноса.


В языках программирования

В следующей таблице для некоторых языков программирования приведены встроенные операторы и функции, реализующие побитовые логические операции.

Язык НЕ И ИЛИ Искл. ИЛИ Сдвиг влево Сдвиг вправо Другие
C/С++, Java, C# ~ & | ^ << >>
Pascal not and or xor shl shr
PL/I INOT IAND IOR IEOR BOOL
¬ & | ¬
Prolog \ /\ \/




Просмотров: 4637


<<< Битовое поле
Сложение по модулю 2 >>>