Оглавление:
Определение - Что означает битовое смещение?
Сдвиг битов - это операция, выполняемая со всеми битами двоичного значения, в которых они перемещаются на определенное количество мест влево или вправо. Сдвиг битов используется, когда операнд используется как последовательность битов, а не как целое. Другими словами, операнд обрабатывается как отдельные биты, которые обозначают что-то, а не как значение.
Сдвиг битов часто используется в программировании и имеет как минимум одну вариацию в каждом языке программирования.
Сдвиг битов также может быть известен как побитовая операция.
Техопедия объясняет битовый сдвиг
Существует два варианта смещения битов: смещение вправо и смещение влево, и оно дополнительно определяется количеством мест, в которых должно происходить смещение. Например, сдвиг операнда на одно значение влево или сдвиг битов «n» значений вправо.
Есть также два вида сдвига битов: логический и арифметический. Логическое смещение битов может быть полезно для умножения или деления целых чисел без знака на степени двойки. Например, если значение «0001» или «1» смещено влево, оно становится «0010» или «2», смещенное влево снова становится «0100» или «4». Сдвиг вправо имеет противоположный эффект от деления значения на два за смену. В большинстве случаев смещение считается круговым, поэтому при смещении влево крайнее левое значение становится крайним правым значением, и наоборот.
Логическое смещение влево и арифметическое смещение влево имеют одинаковый эффект, поэтому в Java есть только один оператор левого сдвига (<<). Арифметическое смещение вправо - (>>), а логическое - (>>>). В C и C ++ есть только один оператор сдвига вправо (>>); тип смещения определяется типом смещаемого целого числа. Целые числа со знаком сдвигаются с использованием арифметики, тогда как для целых чисел без знака используется логическое смещение битов. Сдвиг битов также широко используется в программировании сборок, потому что микроконтроллеры и микропроцессоры обычно используют флаги, которые представлены отдельными битами. По сути, именно потому, что двоичная система счисления используется в программировании на ассемблере, сдвиг битов становится широко используемым оператором.
