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