3 Tcl书写表达式及expr命令

Tcl提供了有效的数学运算和逻辑运算功能。通过expr可以实现对数学表达式的分析和计算。

3.1 数学与逻辑运算符

运算符 说明
- + ~ ! 一元减(取负)、一元加(取正)、按位反、逻辑非
* / % 乘、除、取余
+ - 加、减(二元操作符)
<< >> 左移、右移(二元操作符)
< <= >= > 小于、小于等于、大于等于、大于
== != 布尔等于、不等于
& 按位与
^ 按位异或
| 按位或
&& 逻辑与
|| 逻辑或
x?y:z 三元表达式,x满足为y,不满足为z

3.2 数学函数

函数名 说明 举例
abs(arg) 取绝 set a -10 # a = -10 ; set a [expr abs($a)]
acos(arg) 反余弦
asin(arg) 反正弦
atan(arg) 反正切
atan2 比值取反正切
ceil(arg) 向上取整
cos(arg) 余弦
cosh(arg) 双曲余弦
double(arg) 转换双精度
exp(arg) exp运算e的幂
floor(arg) 向下取整,与ceil相对
fmod 取余(结果为浮点型)
hypot(x,y) 根据直角三角形两直角边长度计算出斜边长度
int(arg) 取整
log(arg) 自然对数
log10(arg) 以10为底的度数
pow 幂运算
rand() 取0-1之间的随机实数 set a [expr 10*[expr rand()]]
round(arg) 四舍五入取整 set a [expr round(10.5)]
sin(arg)
sinh(arg)
sqrt(arg) 求二次根
srand(arg) 以整数arg为随机数生成器的种子产生随机数
tan(arg)
tanh(arg)

3.3算数运算举例

set var1 5
set var2 3 set res [expr $var1 /$var2] #var1和var2都是整数结果为整数
=>1 set var1 5.0
set res [expr $var1 /$var2] # var1是浮点数,所以结果为浮点数
=>1.66666666667 set var1 3
incr var1 2 # incr a b 将b加到a上,a,b必须都是整数,
# 更改a原有的值
=>5 puts $var1
=>5 incr var1 -4 # var1加上-4,var1的值现在为1
=>1

3.4 incr命令

incr命令根据指定的步长来增加或减少参数的值。当步长为负时,减少参数值;当步长为正时,增加参数值。默认步长+1。

incr varName ?step?

set a 10
incr a
=> a=11 set a 10
incr a -1
=> a=9

03-Tcl数学表达式及expr命令的更多相关文章

  1. linux下数学运算器:expr命令(shell中完成数学运算)

    expr用法  expr命令一般用于整数值,但也可用于字符串.一般格式为:  expr argument operator argument  expr也是一个手工命令行计数器.  $expr 10 ...

  2. SHELL脚本--数学运算和bc命令

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 使用let.(()).$(())或$[]进行基本的整数运算,使 ...

  3. Tcl数学运算

    expr 数学表达式 Tcl支持的数学操作符(优先级按照从高到低): -一元负号 +一元正号 ~按位取反 !逻辑非 *乘 /除 %取余 +加号 -减号 <<左移位 >>右移位 ...

  4. linux shell let, expr 命令详解

    linux命令之let.exprshell程序中的操作默认都是字符串操作,在运行数学运算符的时候可能得到意想不到的答案: var=1var=$var+1echo $var 将输出 1+1从这个例子中可 ...

  5. expr 命令

    求表达式变量的值.expr 命令读入 Expression 参数,计算它的值,然后将结果写入到标准输出. 用法:expr Expression Expression 参数规则: 用空格隔开每个项. 用 ...

  6. 【转】linux expr命令参数及用法详解

    在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ...

  7. linux expr命令参数及用法详解

    expr用法 expr命令一般用于整数值,但也可用于字符串.一般格式为: #expr argument operator argument expr也是一个手工命令行计数器. #$expr 10 + ...

  8. SHELL脚本--expr命令全解

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字 ...

  9. Linux之expr命令详解

    expr命令: expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串. –格式为: expr Expression(命令读入Expressi ...

  10. (转)linux expr命令参数及用法详解

    linux expr命令参数及用法详解 原文:http://blog.csdn.net/tianmohust/article/details/7628694 expr用法 expr命令一般用于整数值, ...

随机推荐

  1. 独立于 Github,更方便地管理自己的静态网站?来试试这套自托管 Git 仓库方案!

    原文章来自:独立于 Github,更方便地管理自己的静态网站?来试试这套自托管 Git 仓库方案! - Sxrhhh 的个人小站 就在前几天,我成功地将我自己的网站由 wordpress 迁移为了静态 ...

  2. 文心一言 VS 讯飞星火 VS chatgpt (169)-- 算法导论13.2 2题

    二.用go语言,证明:在任何一棵有 n 个结点的二叉搜索树中,恰有 n-1种可能的旋转. 文心一言: 要证明在任何一棵有 n 个结点的二叉搜索树中,恰有 n-1 种可能的旋转,我们可以按照以下步骤逐步 ...

  3. electron入门之配置镜像加速(四)

    electron入门到入土,配置阿里镜像加速.为了防止后面我们打包龟速,需要给electron配置阿里镜像加速 在下面的文件内添加阿里镜像加速,你的文件位置不一定是这个 C:\Program File ...

  4. DataX快速入门

    DataX3.0快速入门 一.DataX3.0概览 DataX是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内部被广泛使用的离线数据同步工具/平台.解决了数据库之中的数据同步.迁移问题, ...

  5. JavaScript异步编程2——结合XMLHttpRequest使用Promise

    目录 1. 概述 2. 详论 3. 参考 1. 概述 在上一篇文章<JavaScript异步编程1--Promise的初步使用>,简单介绍了一下Promise的初步使用.复习一下,Prom ...

  6. Java开发如何通过IoT边缘ModuleSDK进行进程应用的开发?

    摘要:为解决用户自定义处理设备数据以及自定义协议设备快速接入IOT平台的诉求,华为IoT边缘提供ModuleSDK,用户可通过集成SDK让设备以及设备数据快速上云. 本文分享自华为云社区<[华为 ...

  7. 解读Java内存模型中Happens-Before的8个原则

    摘要:本文我们就结合案例程序来说明Java内存模型中的Happens-Before原则. 本文分享自华为云社区<[高并发]一文秒懂Happens-Before原则>,作者: 冰 河. 在正 ...

  8. 云图说|AppCube零代码,开启无码新生活

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 应用魔方 App ...

  9. 海量数据分析快准稳!GaussDB(for MySQL) HTAP只读分析特性详解

    摘要:除了拥有 ClickHouse 本身的极致性能外,GaussDB(for MySQL)的HTAP只读分析在 MaterilizeMySQL引擎的性能和稳定性等方面具有更优秀的表现,为提供更快更准 ...

  10. 5步带你掌握工作流Activiti框架的使用

    摘要:本文通过一个工作流Activiti框架的具体使用示例,具体详尽的介绍了工作流Activiti框架的使用方式. 本文分享自华为云社区<一个使用示例,五个操作步骤!从此轻松掌握项目中工作流的开 ...