Функция right_shift
Функция right_shift выполняет побитовый сдвиг вправо над числами
в массиве. Она принимает два массива или массив и скаляр, определяющие
исходные числа и количество бит для сдвига. В результате получается новый
массив с числами, сдвинутыми вправо на указанное число бит. Операция
эквивалентна целочисленному делению на 2 в степени количества бит сдвига.
Синтаксис
np.right_shift(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])
Основные параметры:
- x1 - массив или скаляр, числа для сдвига;
- x2 - массив или скаляр, количество бит для сдвига;
- out - (необязательно) массив для сохранения результата;
- where - (необязательно) условие для выполнения операции.
Пример
Давайте сдвинем числа массива вправо на 1 бит:
import numpy as np
arr = np.array([2, 4, 8, 16])
res = np.right_shift(arr, 1)
print(res)
Результат выполнения кода:
[1 2 4 8]
Пример
Теперь используем массив для указания разного количества бит сдвига для каждого элемента:
import numpy as np
arr = np.array([8, 16, 32, 64])
shift = np.array([1, 2, 3, 4])
res = np.right_shift(arr, shift)
print(res)
Результат выполнения кода:
[4 4 4 4]
Пример
Используем оператор >> как альтернативу функции right_shift:
import numpy as np
arr = np.array([10, 20, 30, 40])
res = arr >> 2
print(res)
Результат выполнения кода:
[2 5 7 10]
Пример
Сдвиг отрицательного числа вправо сохраняет знак (дополнительный код):
import numpy as np
arr = np.array([-8, -4, -2])
res = np.right_shift(arr, 1)
print(res)
Результат выполнения кода:
[-4 -2 -1]
Смотрите также
-
функцию
left_shift,
которая выполняет побитовый сдвиг влево -
функцию
bitwise_and,
которая выполняет побитовое И -
функцию
bitwise_or,
которая выполняет побитовое ИЛИ -
функцию
bitwise_xor,
которая выполняет побитовое исключающее ИЛИ