Битовый сдвиг Java IntVector

Как я могу выполнить операцию побитового сдвига (<< или >>) непосредственно в IntVector с помощью Java Vector API?

Я не смог найти ничего очевидного в API для этого; самое близкое, что я нашел, это myIntVec.lanewise(VectorOperators.ASHR, shiftAmt), но оно выполняет дополнительную операцию AND над величиной сдвига.

Возможно, .mul(2) и .div(2) помогут.

egeorge 31.03.2023 00:10
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поведение правильное: чистый << для ints также выполняет операцию & над величиной сдвига. & правильно выполняет соответствующую операцию & для обрабатываемых значений.

ASHR правильно эквивалентен >>. LSHR эквивалентен >>>. LSHL эквивалентен <<. Все они делают то же самое, что и обычные операторы.

Подробнее см. JLS 15.19.

Другие вопросы по теме