03-Tcl数学表达式及expr命令
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命令的更多相关文章
- linux下数学运算器:expr命令(shell中完成数学运算)
		expr用法 expr命令一般用于整数值,但也可用于字符串.一般格式为: expr argument operator argument expr也是一个手工命令行计数器. $expr 10 ... 
- SHELL脚本--数学运算和bc命令
		bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 使用let.(()).$(())或$[]进行基本的整数运算,使 ... 
- Tcl数学运算
		expr 数学表达式 Tcl支持的数学操作符(优先级按照从高到低): -一元负号 +一元正号 ~按位取反 !逻辑非 *乘 /除 %取余 +加号 -减号 <<左移位 >>右移位 ... 
- linux shell let, expr 命令详解
		linux命令之let.exprshell程序中的操作默认都是字符串操作,在运行数学运算符的时候可能得到意想不到的答案: var=1var=$var+1echo $var 将输出 1+1从这个例子中可 ... 
- expr 命令
		求表达式变量的值.expr 命令读入 Expression 参数,计算它的值,然后将结果写入到标准输出. 用法:expr Expression Expression 参数规则: 用空格隔开每个项. 用 ... 
- 【转】linux expr命令参数及用法详解
		在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ... 
- linux expr命令参数及用法详解
		expr用法 expr命令一般用于整数值,但也可用于字符串.一般格式为: #expr argument operator argument expr也是一个手工命令行计数器. #$expr 10 + ... 
- SHELL脚本--expr命令全解
		bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字 ... 
- Linux之expr命令详解
		expr命令: expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串. –格式为: expr Expression(命令读入Expressi ... 
- (转)linux expr命令参数及用法详解
		linux expr命令参数及用法详解 原文:http://blog.csdn.net/tianmohust/article/details/7628694 expr用法 expr命令一般用于整数值, ... 
随机推荐
- 独立于 Github,更方便地管理自己的静态网站?来试试这套自托管 Git 仓库方案!
			原文章来自:独立于 Github,更方便地管理自己的静态网站?来试试这套自托管 Git 仓库方案! - Sxrhhh 的个人小站 就在前几天,我成功地将我自己的网站由 wordpress 迁移为了静态 ... 
- 文心一言 VS 讯飞星火 VS chatgpt (169)-- 算法导论13.2 2题
			二.用go语言,证明:在任何一棵有 n 个结点的二叉搜索树中,恰有 n-1种可能的旋转. 文心一言: 要证明在任何一棵有 n 个结点的二叉搜索树中,恰有 n-1 种可能的旋转,我们可以按照以下步骤逐步 ... 
- electron入门之配置镜像加速(四)
			electron入门到入土,配置阿里镜像加速.为了防止后面我们打包龟速,需要给electron配置阿里镜像加速 在下面的文件内添加阿里镜像加速,你的文件位置不一定是这个 C:\Program File ... 
- DataX快速入门
			DataX3.0快速入门 一.DataX3.0概览 DataX是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内部被广泛使用的离线数据同步工具/平台.解决了数据库之中的数据同步.迁移问题, ... 
- JavaScript异步编程2——结合XMLHttpRequest使用Promise
			目录 1. 概述 2. 详论 3. 参考 1. 概述 在上一篇文章<JavaScript异步编程1--Promise的初步使用>,简单介绍了一下Promise的初步使用.复习一下,Prom ... 
- Java开发如何通过IoT边缘ModuleSDK进行进程应用的开发?
			摘要:为解决用户自定义处理设备数据以及自定义协议设备快速接入IOT平台的诉求,华为IoT边缘提供ModuleSDK,用户可通过集成SDK让设备以及设备数据快速上云. 本文分享自华为云社区<[华为 ... 
- 解读Java内存模型中Happens-Before的8个原则
			摘要:本文我们就结合案例程序来说明Java内存模型中的Happens-Before原则. 本文分享自华为云社区<[高并发]一文秒懂Happens-Before原则>,作者: 冰 河. 在正 ... 
- 云图说|AppCube零代码,开启无码新生活
			阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 应用魔方 App ... 
- 海量数据分析快准稳!GaussDB(for MySQL) HTAP只读分析特性详解
			摘要:除了拥有 ClickHouse 本身的极致性能外,GaussDB(for MySQL)的HTAP只读分析在 MaterilizeMySQL引擎的性能和稳定性等方面具有更优秀的表现,为提供更快更准 ... 
- 5步带你掌握工作流Activiti框架的使用
			摘要:本文通过一个工作流Activiti框架的具体使用示例,具体详尽的介绍了工作流Activiti框架的使用方式. 本文分享自华为云社区<一个使用示例,五个操作步骤!从此轻松掌握项目中工作流的开 ... 
