Tcl中运算符根据功能的不同可分为算术运算符、关系运算符、逻辑运算符、位运算符和三目运算符。
算术运算符
运算符 | 描述 |
+ | 加法操作。 |
- | 减法操作。 |
* | 乘法操作。 |
/ | 除法操作。 |
% | 模运算,求余。 |
关系运算符
运算符 | 描述 |
== | 若两个操作数相等,则返回true。 |
!= | 若两个操作数不相等,则返回true。 |
> | 若左边操作数大于右边操作数,则返回true。 |
< | 若左边操作数小于右边操作数,则返回true。 |
>= | 若左边操作数大于等于右边操作数,则返回true。 |
<= | 若左边操作数小于等于右边操作数,则返回true。 |
逻辑运算符
运算符 | 描述 |
&& | 逻辑与操作。两个操作数都为真,则为true,否则为false。 |
|| | 逻辑或操作。两个操作数都为假,则为false,否则为true。 |
! | 逻辑非操作。反转当前逻辑状态。 |
位运算符
运算符 | 描述 |
& | 按位与操作。两个操作数对应的二进制位同时为1则为1,否则为0。 |
| | 按位或操作。两个操作数对应的二进制位同时为0则为0,否则为1。 |
^ | 按位异或操作。两个操作数对应的二进制位相同则为0,否则为1。 |
<< | 向左位移操作。左操作数向左移动右操作数指定的位数。相当于左操作数乘以2的右操作数次幂。 |
>> | 向右位移操作。左操作数向右移动右操作数指定的位数。相当于左操作数除以2的右操作数次幂。 |
三目运算符
运算符 | 描述 |
?: | 三目运算符。A?B:C,如果A为true,则B,否则C。 |
运算符优先级
运算符优先级从高到低如下:
类别 | 运算符 | 结合性 |
一元运算 | +、-、! | 从右向左 |
乘除法运算 | *、/、% | 从左向右 |
加减法运算 | +、- | 从左向右 |
位移运算 | <<、>> | 从左向右 |
关系运算 | <、<=、>、>= | 从左向右 |
位与运算 | & | 从左向右 |
位异或运算 | ^ | 从左向右 |
位或运算 | | | 从左向右 |
逻辑与运算 | && | 从左向右 |
逻辑或运算 | || | 从左向右 |
三目运算 | ?: | 从右向左 |