math¶
计算数学表达式。
math(EXPR <variable> "<expression>" [OUTPUT_FORMAT <format>])
计算数学 <expression>
并将结果值赋给 <variable>
。表达式的结果必须能表示为 64 位有符号整数。浮点数输入无效,例如 1.1 * 10
。非整数结果(例如 3 / 2
)将被截断。
数学表达式必须以字符串形式给出(即用双引号括起来)。例如 "5 * (10 + 13)"
。支持的运算符有 +
、-
、*
、/
、%
、|
、&
、^
、~
、<<
、>>
和 (...)
;它们的含义与 C 代码中相同。
3.13 版本新增: 十六进制数在以 0x
为前缀时被识别,与 C 代码中一样。
3.13 版本新增: 结果根据 OUTPUT_FORMAT
选项进行格式化,其中 <format>
是以下之一
十六进制
十六进制表示法,与 C 代码中一样,即以 “0x” 开头。
十进制
十进制表示法。如果未指定
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"