Skip to content

Commit

Permalink
Update 07_Zsh-开发指南(第七篇-数值计算).md
Browse files Browse the repository at this point in the history
  • Loading branch information
wxy committed Nov 18, 2017
1 parent ed5eecc commit fbe94ef
Showing 1 changed file with 32 additions and 32 deletions.
64 changes: 32 additions & 32 deletions 07_Zsh-开发指南(第七篇-数值计算).md
Expand Up @@ -18,7 +18,7 @@ integer
% echo ${(t)f}
float
# 注意一旦指定的变量类型,类型就不会变了,除非再重新指定其他类型,或者用 unset 删除掉
# 注意一旦指定了变量类型,类型就不会变了,除非再重新指定其他类型,或者用 unset 删除掉
# 如果把浮点数赋值给整数变量,会取整
% i=12.34
% echo $i
Expand All @@ -38,7 +38,7 @@ float

### 运算符

数值计算主要是在 (( )) 或者 $(( )) 中进行的,在 $[ ] 或者 $var[ ](可用于数组索引的计算)中也能进行一部分,这里统一使用小括号。
数值计算主要是在 `(( ))` 或者 `$(( ))` 中进行的,在 `$[ ]` 或者 `$var[ ]`(可用于数组索引的计算)中也能进行一部分,这里统一使用小括号。

```
% integer i=123
Expand All @@ -62,24 +62,24 @@ float
运算符列表:

运算符 | 功能 | 样例
-- | -- | --
\+ - * / | 四则运算 | 1 + 2 * 3 / 4
** | 乘方 | 3 ** 3.5
% | 取余 | 5 % 3
++ -- | 自增、自减 | i++(返回 i) ++i(返回 i + 1)
& \| ^ | 按位与、按位或、按位异或 | 11 & 13
~ | 按位取反 | ~15
<< >> | 按位左移、按位右移 | 1 << 3
< <= > >= | 大小比较 | 2 <= 4
== != | 相等比较 | 2 != 4
&& \|\| | 逻辑与、逻辑或 | 2 <= 4 && 1 != 3 \|\| 5 > 0
! | 逻辑非 | ! 1 > 2
^^ | 逻辑异或(两个中只有一个为真) | 1 > 0 ^^ 1 < 0
= | 赋值 | i = 10
+= -= *= /= %= **= &= ^= \|= <<= >>= &&= ^^= \|\|= | 复合赋值| i += 10
( ) | 调整优先级 | (1 + 2 ) * 3
? : | 三元运算符 | 1 > 2 ? 100 : 200
, | 逗号运算符(只返回后者) | 40, 20 == 20
--- | --- | ---
`+` `-` `*` `/` | 四则运算 | 1 + 2 * 3 / 4
`**` | 乘方 | 3 ** 3.5
`%` | 取余 | 5 % 3
`++` `--` | 自增、自减 | i++(返回 i) ++i(返回 i + 1)
`&` \| `^` | 按位与、按位或、按位异或 | 11 & 13
`~` | 按位取反 | ~15
`<<` `>>` | 按位左移、按位右移 | 1 << 3
`<` `<=` `>` `>=` | 大小比较 | 2 <= 4
`==` `!=` | 相等比较 | 2 != 4
`&&` \|\| | 逻辑与、逻辑或 | 2 <= 4 && 1 != 3 \|\| 5 > 0
`!` | 逻辑非 | ! 1 > 2
`^^` | 逻辑异或(两个中只有一个为真) | 1 > 0 ^^ 1 < 0
`=` | 赋值 | i = 10
`+=` `-=` `*=` `/=` `%=` `**=` `&=` `^=` \|= `<<=` `>>=` `&&=` `^^=` \|\|= | 复合赋值| i += 10
`( )` | 调整优先级 | (1 + 2 ) * 3
`? :` | 三元运算符 | 1 > 2 ? 100 : 200
`,` | 逗号运算符(只返回后者) | 40, 20 == 20

运算符的优先级和其他编程语言的差不多,不列出了,如果不确定可以加小括号。这部分内容和 c、java、javascript 等语言基本一致。

Expand All @@ -97,21 +97,21 @@ Zsh 包含了一个数学模块,如果需要使用数学函数,需要先加
函数列表:

函数名 | 功能
-- | --
abs | 求绝对值
ceil | 向上取整
floor | 向下取整
int | 截断取整
float | 转换成浮点数
sqrt | 开平方
cbrt | 开立方
log | 自然对数
log10 | 常用对数
rand48 | 随机数
--- | ---
`abs` | 求绝对值
`ceil` | 向上取整
`floor` | 向下取整
`int` | 截断取整
`float` | 转换成浮点数
`sqrt` | 开平方
`cbrt` | 开立方
`log` | 自然对数
`log10` | 常用对数
`rand48` | 随机数

更多函数:

acosacoshasinasinhatan, atanh,  cos, cosherferfcexpexpm1fabsgamma, j0, j1, lgammalog1p, logbsinsinhtantanh, y0, y1, ilogb, signgam, copysignfmodhypotnextafter, jn, yn, ldexpscalb
`acos``acosh``asin``asinh``atan``atanh``cos``cosh``erf``erfc``exp``expm1``fabs``gamma``j0``j1``lgamma``log1p``logb``sin``sinh``tan``tanh``y0``y1``ilogb``signgam``copysign``fmod``hypot``nextafter``jn``yn``ldexp``scalb`


### 参考
Expand Down

0 comments on commit fbe94ef

Please sign in to comment.