可用运算符和功能

使用数据、运算符、数学函数和数据类型转换创建表达式。

运算符

整型运算符

请使用这些运算符执行简单的算术运算。使用它们计算数值,例如 "TankLevel + 60"。

操作员

表达式

描述

[+]

X + Y

[-]

X - Y

[*]

X * Y

[/]

X / Y

[%]

X % Y

除法的余数

[()]

(X + Y)*10

 

使用加运算符 (+) 可以连接字符串。换句话说,可以用+符号将字符串连接起来, "Hello " + " " + "Billy" 即变为字符串 "Hello Billy"。

位运算符

操作员

表达式

描述

[>>]

X >> Y

右移。系统会将 X 中的位右移 Y 位。系统会保留符号。

[<<]

X << Y

左移。系统会将 X 中的位左移 Y 位。系统会保留符号。

[>>>]

X >>> Y

填零右移。系统会将 X 中的位右移 Y 位,并用 0 填充移出的左侧位,因此不会保留符号。

[&]

X & Y

返回按位 AND 运算的结果。

如果 X = 0110、Y= 0100,那么结果为 1100

[|]

X | Y

返回按位 OR 运算的结果。

如果 X = 0110、Y= 1110,那么结果为 1100

[^]

X ^ Y

返回按位 XOR 运算的结果。

如果 X = 0110、Y= 1010,那么结果为 1100

[~]

~X

将 X 的每一位进行取反运算。

如果 X = 0110,那么结果为 1001

[!]

!X

当 X 不等于时,返回 True。

注:

  • OR/AND/XOR/NOT总是返回32位无符整型值。
  • 当输入值为负时,位移位表达式返回32位整型值。
  • 当输入值为正数时,位移位表达式返回32位无符整型值。

 

布尔型输出运算符

这些运算符会比较两个值。当定义的比较为 True 时,表达式会返回 True。当定义的比较为 False 时,表达式会返回 False。使用它们比较数值,例如 "TankLevel > 30"。

当值中出现以下情况之一时,结果为未定义。
  • 通信错误 (变量质量 “差”)
  • 访问超出界限的数组元素编号
  • 除以零。

操作员

表达式

描述

[&&]

X && Y

逻辑 AND。

注:

  • 转换器中的 BOOL 表达式必须计算为布尔值。如果表达式计算为任何其他的数据类型,那么该值则为未定义。
  • 即使其中一个操作数的值可能是未定义的,但如果另一个操作数为假,产生的逻辑条件可以评估为假。请见下表。
    左运算符 右运算符 结果
    未定义 未定义 未定义
    未定义 true 未定义
    未定义 false false
    true 未定义 未定义
    false 未定义 false

[||]

X || Y

逻辑 OR。

注:

  • 转换器中的 BOOL 表达式必须计算为布尔值。如果表达式计算为任何其他的数据类型,那么该值则为未定义。
  • 即使其中一个操作数的值可能是未定义的,但如果另一个操作数为真,产生的逻辑条件可以评估为真。请见下表。
    左运算符 右运算符 结果
    未定义 未定义 未定义
    未定义 true true
    未定义 false 未定义
    true 未定义

    true

    false 未定义 未定义

[==]

X == Y

当 X 等于 Y 时,返回 True。

[!=]

X != Y

当 X 不等于 Y 时,返回 True。

[<=]

X <= Y

当 X 小于或等于 Y 时,返回 True。

注:此运算符不能用于 BOOL 变量、STRING 变量和 WSTRING 变量。

[>=]

X >= Y

当 X 大于或等于 Y 时,返回 True。

注:此运算符不能用于 BOOL 变量、STRING 变量和 WSTRING 变量。

[<]

X < Y

当 X 小于 Y 时,返回 True。

注:此运算符不能用于 BOOL 变量、STRING 变量和 WSTRING 变量。

[>]

X > Y

当 X 大于 Y 时,返回 True。

注:此运算符不能用于 BOOL 变量、STRING 变量和 WSTRING 变量。

Math

方法

描述

abs(a)

返回绝对值。

参数:整型,返回:整型 -或-
参数:长整型,返回:长整型 -或-
参数:浮点型,返回:浮点型 -或-
参数:双精度型,返回:双精度型

acos(double a)

返回反余弦值。

参数:双精度型,返回:双精度型

asin(double a)

返回反正弦值。

参数:双精度型,返回:双精度型

atan(double a)

返回反正切值。

参数:双精度型,返回:双精度型

atan2(double a, double b)

返回 a/b 的反正切值。

参数 a:双精度型,参数 b:双精度型,返回:双精度型

ceil(double a)

返回大于参数的最小整数。

参数:双精度型,返回:双精度型

cos(double a)

返回余弦值。

参数:双精度型,返回:双精度型

E

自然对数的底数。双精度浮点数值。2.71828182845904523545f

注:使用 Math.E 语法。

exp(double a)

返回指数e (如 2.718...) 以某双精度值为次数自乘的乘积。

参数:双精度型,返回:双精度型

floor(double a)

返回小于参数的最大整数。

参数:双精度型,返回:双精度型

IEEEremainder(double a, double b)

返回参数 a 除以参数 b 后的余数。

参数 a:双精度型,参数 b:双精度型,返回:双精度型

log(double a)

返回参数的自然对数。

参数:双精度型,返回:双精度型

max(a,b)

返回 2 个参数中较大的那个。

参数 a: 整形, 参数 b: 整形, 返回: 整形 -或-
参数 a: 长整形, 参数 b: 长整形, 返回: 长整形 -或-
参数 a: 浮点型, 参数 b: 浮点型, 返回: 浮点型 -或-
参数 a: 双精度型, 参数 b: 双精度型, 返回: 双精度型

min(a,b)

返回 2 个参数中较小的那个。

参数 a: 整形, 参数 b: 整形, 返回: 整形 -或-
参数 a: 长整形, 参数 b: 长整形, 返回: 长整形 -或-
参数 a: 浮点型, 参数 b: 浮点型, 返回: 浮点型 -或-
参数 a: 双精度型, 参数 b: 双精度型, 返回: 双精度型

PI

圆的周长与其直径的比值。

3.14159265358979323846f

注: 使用 Math.PI 语法。

pow(double a, double b)

返回 ab

参数 a:双精度型,参数 b:双精度型,返回:双精度型

random()

返回介于 0.0 和 1.0 之间的随机数。

参数:无,返回:双精度型

注: 此函数的输出是介于0和1之间的浮点数。

rint(double a)

返回最接近参数的整数。

参数:双精度型,返回:双精度型

round(a)

返回最接近双精度型参数的长整型,以及最接近浮点型参数的整型。

参数: 双精度型, 返回: 长整形 -或-
参数: 浮点型, 返回: 整形

sin(double a)

返回参数的正弦值。

参数:双精度型,返回:双精度型

sqrt(double a)

返回参数的平方根。

参数:双精度型,返回:双精度型

tan(double a)

返回参数的正切值。

参数:双精度型,返回:双精度型

类型转换

使用类型转换来转换数据类型。下例是一个有效的表达式,其中LWORD变量转换为SINT变量:

类型

描述

(sint)

返回四舍五入为 8 位有符整形的值。

(usint)

返回四舍五入为 8 位无符整形的值。

(byte)

返回四舍五入为 8 位无符整形的值。

(int)

返回四舍五入为 16 位有符整形的值。

(uint)

返回四舍五入为 16 位无符整形的值。

(word)

返回四舍五入为 16 位无符整形的值。

(dint)

返回四舍五入为 32 位有符整形的值。