Страницы

Поиск по вопросам

пятница, 19 октября 2018 г.

Вывод результата побитовой операции в Bash

Хочу реализовать простейший пример. Есть два числа в двоичной системе 0011 и 0101. Хочу применить к ним операцию "ПОБИТОВОЕ ИЛИ". Результат вывести в виде двоичного числа. Должно получиться 0111, получаю 73. Почему так?
#!/bin/bash AA=0011 BB=0101 CC=$(($AA | $BB)) echo "Result: " $CC


Ответ

Двоичные числа в bash задаются как 2#число. Выводить в двоичном виде результат bash не умеет, можно воспользоваться bc
#!/bin/bash AA=2#0011 BB=2#0101 CC=$(($AA | $BB)) echo -n "Result: " printf "%04d" `echo "obase=2;$CC" | bc`

Комментариев нет:

Отправить комментарий