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"
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/command/math.html