Битовые сдвиги[править | править исходный текст]
Основная статья: Битовый сдвиг
К битовым операциям также относят битовые сдвиги. При сдвиге значения битов копируются в соседние по направлению сдвига. Различают несколько видов сдвигов — логический,арифметическийициклический, в зависимости от обработки крайних битов.
Также различают сдвиг влево(в направлении от младшего бита к старшему) ивправо(в направлении от старшего бита к младшему).
Логический сдвиг
Арифметический сдвиг (правый)
Циклический сдвиг
Циклический сдвиг через перенос
Логический сдвиг[править | править исходный текст]
При логическом сдвиге значение последнего бита по направлению сдвига теряется (копируясь в бит переноса), а первый приобретает нулевое значение.
Логические сдвиги влево и вправо используются для быстрого умножения и деления на 2, соответственно.
Арифметический сдвиг[править | править исходный текст]
Арифметический сдвиг аналогичен логическому, но значение слова считается знаковым числом, представленным в дополнительном коде. Так, при правом сдвиге старший бит сохраняет свое значение. Левый арифметический сдвиг идентичен логическому.
Циклический сдвиг[править | править исходный текст]
При циклическом сдвиге, значение последнего бита по направлению сдвига копируется в первый бит (и копируется в бит переноса).
Также различают циклический сдвиг через бит переноса— при нём первый бит по направлению сдвига получает значение из бита переноса, а значение последнего бита сдвигается в бит переноса.
В языках программирования[править | править исходный текст]
В следующей таблице для некоторых языков программирования приведены встроенные операторы и функции, реализующие побитовые логические операции.
Язык | НЕ | И | ИЛИ | Искл. ИЛИ | Сдвиг влево | Сдвиг вправо | Другие |
C/С++, Java, C#, Ruby[4] | ~ | & | | | ^ | << | >> |
|
Pascal[5] | not | and | or | xor | shl | shr |
|
PL/I[6] | INOT | IAND | IOR | IEOR |
|
| BOOL |
¬ | & | | | ¬ |
|
| ||
Prolog[7] | \ | /\ | \/ |
|
|
|
|
- Алгебра логики
- Содержание
- Определение[править | править исходный текст]
- Аксиомы[править | править исходный текст]
- Логические операции[править | править исходный текст]
- Свойства логических операций[править | править исходный текст]
- История[править | править исходный текст]
- См. Также[править | править исходный текст] Булева алгебра
- Содержание
- Некоторые свойства[править | править исходный текст]
- Основные тождества[править | править исходный текст]
- Примеры[править | править исходный текст]
- Принцип двойственности[править | править исходный текст]
- Представления булевых алгебр[править | править исходный текст]
- Аксиоматизация[править | править исходный текст]
- См. Также[править | править исходный текст]
- Примечания[править | править исходный текст]
- Литература[править | править исходный текст]
- Булева функция
- Содержание
- Основные сведения[править | править исходный текст]
- Нульарные функции[править | править исходный текст]
- Унарные функции[править | править исходный текст]
- Бинарные функции[править | править исходный текст]
- Тернарные функции[править | править исходный текст]
- Полные системы булевых функций[править | править исходный текст]
- Суперпозиция и замкнутые классы функций[править | править исходный текст]
- Тождественность и двойственность[править | править исходный текст]
- Полнота системы, критерий Поста[править | править исходный текст]
- Представление булевых функций[править | править исходный текст]
- Дизъюнктивная нормальная форма (днф)[править | править исходный текст]
- Конъюнктивная нормальная форма (кнф)[править | править исходный текст]
- Алгебраическая нормальная форма (анф или полином Жегалкина)[править | править исходный текст]
- Классификация булевых функций[править | править исходный текст]
- См. Также[править | править исходный текст]
- Литература[править | править исходный текст]
- Битовые операции
- Содержание
- Побитовые логические операции[править | править исходный текст]
- Побитовое отрицание (not) [править | править исходный текст]
- Побитовое и (and) [править | править исходный текст]
- Побитовое или (or) [править | править исходный текст]
- Сложение по модулю два (xor) [править | править исходный текст]
- Другие побитовые логические операции[править | править исходный текст]
- Битовые сдвиги[править | править исходный текст]
- В теории сложности алгоритмов[править | править исходный текст]
- Связь с другими науками[править | править исходный текст] Битовые операции и математическая логика[править | править исходный текст]
- Обобщение операций на булеву алгебру[править | править исходный текст]
- Битовые операции как основа цифровой техники[править | править исходный текст]
- Практические применения[править | править исходный текст]
- Физическая реализация битовых операций[править | править исходный текст]
- Схемы аппаратной логики[править | править исходный текст]
- Использование в программировании[править | править исходный текст]
- См. Также[править | править исходный текст]
- Примечания[править | править исходный текст]
- Навигация
- Двоичный сумматор[править | править исходный текст]