Пример 8-2. Арифметические операции
Пример 8-2. Арифметические операции
#!/bin/bash
# От 1 до 6 пятью различными способами.
n=1; echo -n "$n "
let "n = $n + 1" # let "n = n + 1" тоже допустимо
echo -n "$n "
: $((n = $n + 1))
# оператор ":" обязателен, поскольку в противном случае, Bash будет
#+ интерпретировать выражение "$((n = $n + 1))" как команду.
echo -n "$n "
n=$(($n + 1))
echo -n "$n "
: $[ n = $n + 1 ]
# оператор ":" обязателен, поскольку в противном случае, Bash будет
#+ интерпретировать выражение "$[ n = $n + 1 ]" как команду.
# Не вызывает ошибки даже если "n" содержит строку.
echo -n "$n "
n=$[ $n + 1 ]
# Не вызывает ошибки даже если "n" содержит строку.
#* Старайтесь избегать употребления такой конструкции,
#+ поскольку она уже давно устарела и не переносима.
echo -n "$n "; echo
# Спасибо Stephane Chazelas.
exit 0
Целые числа в Bash фактически являются знаковыми длинными целыми (32-бит), с диапазоном изменений от -2147483648 до 2147483647. Если в результате какой либо операции эти пределы будут превышены, то результат получится ошибочным.
a=2147483646
echo "a = $a" # a = 2147483646
let "a+=1" # Увеличить "a" на 1.
echo "a = $a" # a = 2147483647
let "a+=1" # увеличить "a" еще раз, с выходом за границы диапазона.
echo "a = $a" # a = -2147483648
# ОШИБКА! (выход за границы диапазона)
Bash ничего не знает о существовании чисел с плавающей запятой. Такие числа, из-за наличия символа десятичной точки, он воспринимает как строки.
a=1.5
let "b = $a + 1.3" # Ошибка.
# t2.sh: let: b = 1.5 + 1.3: syntax error in expression (error token is ".5 + 1.3")
echo "b = $b" # b=1
Для работы с числами с плавающей запятой в сценариях можно использовать утилиту-калькулятор bc.
битовые операции. Битовые операции очень редко используются в сценариях командного интерпретатора. Их главное назначение, на мой взгляд, установка и проверка некоторых значений, читаемых из портов ввода-вывода и сокетов. "Битовые операции" гораздо более уместны в компилирующих языках программирования, таких как C и C++.
битовые операции
<<
сдвигает на 1 бит влево (умножение на 2)
<<=
"сдвиг-влево-равно"
let "var <<= 2" значение переменной var сдвигается влево на 2 бита (умножается на 4)
>>
сдвиг вправо на 1 бит (деление на 2)
>>=
"сдвиг-вправо-равно" (имеет смысл обратный <<=)
&
по-битовое И (AND)
&=
"по-битовое И-равно"
|
по-битовое ИЛИ (OR)
|=
"по-битовое ИЛИ-равно"
~
по-битовая инверсия
!
По-битовое отрицание
^
по-битовое ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR)
^=
"по-битовое ИСКЛЮЧАЮЩЕЕ-ИЛИ-равно"
логические операции
&&
логическое И (and)
if [ $condition1 ] && [ $condition2 ]
# То же самое, что: if [ $condition1 -a $condition2 ]
# Возвращает true если оба операнда condition1 и condition2 истинны...
if [[ $condition1 && $condition2 ]] # То же верно
# Обратите внимание: оператор && не должен использоваться внутри [ ... ].
оператор &&, в зависимости от контекста, может так же использоваться в И-списках для построения составных команд.
||
логическое ИЛИ (or)
if [ $condition1 ] || [ $condition2 ]
# То же самое, что: if [ $condition1 -o $condition2 ]
# Возвращает true если хотя бы один из операндов истинен...
if [[ $condition1 || $condition2 ]] # Also works.
# Обратите внимание: оператор || не должен использоваться внутри [ ... ].
Bash производит проверку кода возврата КАЖДОГО из операндов в логических выражениях.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Арифметические операции
Арифметические операции Для работы с числами используют арифметические операции.• Сложение – знак плюс (+). Например, 5 + 7 = 12.• Вычитание – знак минус (-). Например, 67 – 43 = 24.• Умножение – звездочка (*). Например, 2 * 2 = 4.• Деление – косая черта (/). Например, 45 / 5 = 9.• Остаток от
Арифметические операторы
Арифметические операторы Арифметические операторы служат для выполнения арифметических действий над числами. Все арифметические операторы, поддерживаемые JavaScript, перечислены в табл. 14.2.Таблица 14.2. Арифметические операторы Арифметические операторы делятся на две
Арифметические операции
Арифметические операции + – сложение— – вычитание* – умножение/ – делениеDIV – деление нацелоMOD – остаток от деления
Арифметические операции
Арифметические операции Унарные операции – применяются к одной переменной.++ – увеличение на единицу (x++ выдаёт старое значение, ++x – новое значение).– – – уменьшение на единицу, аналогично операции ++.Бинарные операции – стоят между двумя переменными или
Пример программной реализации трехмерной операции
Пример программной реализации трехмерной операции Рассмотрим выполнение трехмерной формообразующей операции вручную (то есть в самом КОМПАС) и с помощью воображаемого подключаемого модуля. В качестве примера выберем обычную операцию выдавливания на основе несложного
I. Арифметические операции
I. Арифметические операции + Прибавляет величину, находящуюся справа, к величине, стоящей слева - Вычитает величину, стоящую справа, из величины, указанной слева - Будучи унарной операцией, изменяет знак величины, стоящей справа * Умножает величину справа на величину,
Арифметические операции (Arithmetic operations)
Арифметические операции (Arithmetic operations) Библиотека обеспечивает базовые классы функциональных объектов для всех арифметических операторов языка.template ‹class T›struct plus: binary_function‹T, T, T› { Т operator()(const T& x, const T& y) const {return x + y;}};template ‹class T›struct minus: binary_function‹T, T, T› { Т operator()(const T&
4.2. Арифметические операции
4.2. Арифметические операции Таблица 4.1. Арифметические операции Символ операции Значение Использование * Умножение expr*expr / Деление expr / expr % Остаток от деления expr % expr + Сложение expr + expr - Вычитание expr – expr Деление целых чисел дает в результате целое
Арифметические операции
Арифметические операции Арифметические выражения вычисляются слева направо за исключением случаев, когда возникает двусмысленность. В этих случаях арифметические операции вычисляются в соответствии с приоритетами, описанными в табл. 21.3. Например, умножение
Пример 7-3. Арифметические выражения внутри (( ))
Пример 7-3. Арифметические выражения внутри (( )) #!/bin/bash# Проверка арифметических выражений.# Инструкция (( ... )) вычисляет арифметические выражения.# Код возврата противоположен коду возврата инструкции [ ... ] !(( 0 ))echo "Код возврата "(( 0 ))": $?." # 1(( 1 ))echo "Код возврата "(( 1 ))": $?."
Пример 7-5. Операции сравнения
Пример 7-5. Операции сравнения #!/bin/basha=4b=5# Здесь переменные "a" и "b" могут быть как целыми числами, так и строками.# Здесь наблюдается некоторое размывание границ#+ между целочисленными и строковыми переменными,#+ поскольку переменные в Bash не имеют типов.# Bash выполняет
Пример 10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд
Пример 10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд #!/bin/bash# уЩЫЬ for гЯ [гаЩгЫЯЭ], гЯкФСЮЮйЭ г аЯЭЯниР аЯФгдСЮЯзЫЩ ЫЯЭСЮФ.NUMBERS="9 7 3 8 37.53"for number in `echo $NUMBERS` # for number in 9 7 3 8 37.53do echo -n "$number "doneecho exit 0Более сложный пример использования подстановки
Арифметические операции
Арифметические операции К арифметическим относятся бинарные операции +, -, *, / для вещественных и целых чисел, бинарные операции div и mod для целых чисел и унарные операции + и - для вещественных и целых чисел. Тип выражения x op y, где op - знак бинарной операции +, - или *,
2.2. Арифметические операции над числами, представленными в различных системах счисления
2.2. Арифметические операции над числами, представленными в различных системах счисления Арифметические операции во всех позиционных системах счисления выполняются по одним и тем же правилам. Для проведения арифметических операций над числами, представленными в