Целочислени стойности и операции в 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