数学

评估数学表达式。

math(EXPR <variable> "<expression>" [OUTPUT_FORMAT <format>])

评估数学“<表达式>”并将“<变量>”设置为结果值。表达式的结果必须可表示为 64 位有符号整数。

数学表达式必须作为字符串给出(即用双引号括起来)。一个例子是``"5 * (10 + 13)"。支持的操作符有``+, -, *, /, %, |, &, ^~<<>>``和``(...);它们与 C 代码中的含义相同。

在 3.13 版本加入: 十六进制数在前缀为“0x”时被识别,就像在 C 代码中一样。

在 3.13 版本加入: 结果根据选项 OUTPUT_FORMAT 进行格式化,其中 <format> 是其中之一

十六进制

C 代码中的十六进制表示法,i。 e.以“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"