Побитовые операторы в GAP

Можно ли использовать побитовые операторы в языке программирования GAP? Например, в Python можно сделать следующее:

a = 60            # 60 = 0011 1100 
b = 13            # 13 = 0000 1101 
c = 0

c = a & b;        # 12 = 0000 1100
c = a | b;        # 61 = 0011 1101 
c = a ^ b;        # 49 = 0011 0001
c = ~a;           # -61 = 1100 0011
c = a << 2;       # 240 = 1111 0000
c = a >> 2;       # 15 = 0000 1111

Я хотел бы иметь возможность выполнять все вышеперечисленные операции в GAP, но, похоже, я ничего не могу найти в документации.

Вот ссылка на документацию: https://www.gap-system.org/Manuals/doc/ref/chap0.html


person Dan P.    schedule 23.10.2019    source источник
comment
можешь дать ссылку на документацию?   -  person peer    schedule 23.10.2019
comment
это en.wikipedia.org/wiki/GAP_(computer_algebra_system)? Если да, то работает ли он с двоичным кодом?   -  person phuclv    schedule 23.10.2019
comment
Да, это программа, о которой идет речь. Что вы имеете в виду, он работает с двоичным кодом?   -  person Dan P.    schedule 23.10.2019


Ответы (1)


Нет, такие операции напрямую недоступны. В зависимости от того, что вы действительно хотите сделать, вы, конечно, можете имитировать их различными способами, но это будет не так эффективно. Например, вы используете логические списки (которые хранятся внутри как битовые строки) или векторы в векторном пространстве над GF (2).

person Max Horn    schedule 14.07.2020