Целочислени стойности и операции в Lua
Lua поддържа два основни типа числа: цели числа (integers) и числа с плаваща запетая (floats). В Lua 5.3 и по-нови версии е въведена пълна поддръжка за целочислени стойности, което позволява по-ефективни изчисления и по-точно представяне на дискретни стойности.
Деклалиране не цели числа
В Lua целите числа се разпознават автоматично, ако не съдържат десетична точка или експоненциална нотация:
local a = 10 -- Цяло число
local b = -25 -- Отрицателно цяло число
Основни целочислени операции
Lua поддържа следните аритметични операции с цели числа:
Оператор | Описание | Пример |
---|---|---|
+ |
Събиране | a + b |
- |
Изваждане | a - b |
* |
Умножение | a * b |
// |
Целочислено деление | a // b |
% |
Остатък от деление | a % b |
^ |
Степенуване | a ^ b |
Пример:
local x = 15
local y = 4
print(x // y) -- 3 (целочислено деление)
print(x % y) -- 3 (остатък от деление)
Lua позволява преобразуване между цели числа и числа с плаваща запетая чрез функциите math.floor(), math.ceil(), math.tointeger() и tonumber():
local f = 3.7
local i = math.floor(f) -- 3
local j = math.tointeger(f) -- 3 (ако числото може да се представи като integer)
Битови операции
Lua поддържа битови операции с цели числа чрез специални оператори:
Оператор | Описание | Пример |
---|---|---|
& |
Побитово И | a & b |
` |
- | Побитово ИЛИ `a b` |
~ |
Побитово XOR | a ~ b |
<< |
Побитово отместване наляво | a << 2 |
>> |
Побитово отместване надясно | a >> 1 |