Побитовые операции в БК? - PullRequest
5 голосов
/ 02 июня 2010
$ bc
BC> ibase=2
BC> 110&101                     // wanna get 100
(standar_in) 8: syntax error

Википедия сообщает, что операционные значения - "|, & и ^" Может случиться так, что они работают только в определенных типах BC, или я что-то неправильно понял.

Ответы [ 3 ]

6 голосов
/ 02 июня 2010

Эти операторы перечислены в разделе «Отсутствующие» операторы относительно C , который заканчивается на «... недоступны в POSIX bc»

1 голос
/ 02 июня 2010

В статье в Википедии совершенно ясно, что эти операции отсутствуют в POSIX bc или gnu bc. Страница руководства также не упоминает их.

0 голосов
/ 20 ноября 2018

Несмотря на то, что bc этого не сделает, вы можете использовать арифметическое расширение непосредственно на терминале, если используете bash.

Для XOR 44 и 61 вы можете сделать:

echo $((44^61))

Если вы хотите использовать двоичный код, то:

echo $((2#110^2#101))

См. Числовые константы для изменения базы.

См. Раздел побитовые операторы , чтобы просмотреть доступные операторы.

...