РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
193 of 541 menu

Функция 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,
    которая выполняет побитовое исключающее ИЛИ
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить