math¶
求解数学表达。
math(EXPR <variable> "<expression>" [OUTPUT_FORMAT <format>])
求解一个数学<表达>
并设置<变量>
为求得的值。表达式的结果必须是一个可表示为 64 位有符号整数的数。浮点数输入是无效的,例如1.1 * 10
。非整数结果(如3 / 2
)会被截断。p
数学表达必须用字符串给出(即用双引号引起来)。一个示例是"5 * (10 + 13)"
。支持的运算符为+
、-
、*
、/
、%
、|
、&
、^
、~
、<<
、>>
和(...)
;这些运算符在 C 代码中的含义与这里相同。
始于版本 3.13: 以0x
为前缀的十六进制数将被识别, 如同在 C 代码中一样。
始于版本 3.13: 结果根据选项OUTPUT_FORMAT
进行设置,其中<格式>
为以下之一:
HEXADECIMAL
十六进制表示法,如同在 C 代码中一样,即以"0x"开头。
DECIMAL
十进制表示法。如果没有指定
OUTPUT_FORMAT
,也会使用这种表示法。
例如
math(EXPR value "100 * 0xA" OUTPUT_FORMAT DECIMAL) # value is set to "1000"
math(EXPR value "100 * 0xA" OUTPUT_FORMAT HEXADECIMAL) # value is set to "0x3e8"