数学表达式与 expr 命令
1. 数学和逻辑运算符
| 运算符 | 说明 |
| - + ~ ! | 一元减(取负)、一元加(取正)、比特反、逻辑非 |
| * / % | 乘、除、取余(二元操作符) |
| + - | 加、减(二元操作符) |
| << >> | 左移、右移(二元操作符) |
| < <= > >= | 布尔小于、小于或等于、大于、大于或等于 |
| == != | 布尔等、不等 |
| & | 比特与 |
| ^ | 比特异或 |
| | | 比特或 |
| && | 逻辑与 |
| || | 逻辑或 |
| x ? y:z | 三重操作符:根据 x 的值( true or false)在 y 和 z 两个结果中进行选择。 x 为 true( =1)则选择 y, 否则选择 z。 |
2. 数学函数
| 函数名 | 说明 | 举例 |
| abs(arg) | 取绝对值 | set a –10 ; set a [expr abs($a)]; |
| acos(arg) | 反余弦 | set p 1.0; set a [expr acos($p); |
| asin(arg) | 反正弦 | |
| atan(arg) | 反正切 | |
| atan2 | 比值取反正切 | |
| ceil(arg) | 返回不小于 arg 值的整数值 | |
| cos(arg) | 余弦 | |
| cosh(arg) | 双曲余弦 | |
| double(arg) | 转换双精度 | |
| exp(arg) | exp 运算( e 的幂) | |
| floor(arg) | ||
| fmod | 取余(结果为浮点型) | |
| hypot(x,y) | 根据直角三角形两直边长度计算出斜边长度 | |
| int(arg) | 取整 | |
| log(arg) | 自然对数 | |
| log10(arg) | 以十为底的对数 | |
| pow | 幂运算 | |
| rand() | 取 0 到 1 之间的随机实数数(无输入参数) | set a [expr 10 * [expr rand()]];0 到 10 之间随即实数 |
3. incr 命令
incr 命令根据指定的步长来增加或减少参数的值。当步长为负时,减少参数值;当步长为正时,增加参数值。默认步长为+1。
语法:
- incr varName ?step?
示例:
-
set a 10; incr a
-
=> a = 11
-
-
set a 10; incr a -1
-
=> a = 9
-

浙公网安备 33010602011771号