Страницы

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

пятница, 20 декабря 2019 г.

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

#linux #ubuntu #bash


Хочу реализовать простейший пример. Есть два числа в двоичной системе 0011 и 0101.
Хочу применить к ним операцию "ПОБИТОВОЕ ИЛИ". Результат вывести в виде двоичного числа.
Должно получиться 0111, получаю 73.
Почему так? 

#!/bin/bash
AA=0011
BB=0101
CC=$(($AA | $BB))
echo "Result: " $CC

    


Ответы

Ответ 1



Двоичные числа в 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`

Ответ 2



Выводить в двоичном виде bash не умеет, но можно как-то так (без bc): BA=({0..1}{0..1}{0..1}{0..1}) AA=2#0011 BB=2#0101 CC=${BA[$((AA|BB))]} echo $CC

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

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