Вы можете использовать prev
и next
для сдвига бита. Например, чтобы умножить на 2, используйте next
, затем конвертируйте обратно в число с 0b sv
:
0b sv next 0b vs 256
512
Чтобы сдвинуться более чем на 1 бит, вы можете использовать next
или prev
со значением over или использовать xprev
:
q)0b sv next/[10;0b vs 256]
262144
q)0b sv -10 xprev 0b vs 256
262144
В каждом случае бит сдвигается на 10 позиций. Обратите внимание, что xnext
отсутствует, отрицательное значение должно использоваться вместо xprev
.
Включающее ИЛИ может быть достигнуто с помощью any
или |
в списках логических значений одинаковой длины, например:
0b sv any 0b vs/:256 512
768
Исключительно ИЛИ (XOR) можно сделать с неравными <>
. В этом примере есть 3 списка:
(<>/)(0011b;0101b;1000b)
1110b