#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
Комментариев нет:
Отправить комментарий