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>
是下列其中之一:
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"