Lua 5.3 a introdus suport nativ pentru numere întregi pe 64 de biți (integer) alături de numerele cu virgulă mobilă (float). Funcția math.type identifică subtipul numeric, iar math.ult permite compararea numerelor întregi interpretate ca valori fără semn (unsigned).
-- Verificarea subtipului:
print(math.type(42)) -- "integer"
print(math.type(42.0)) -- "float"
print(math.type("42")) -- nil (nu este număr)
-- Comparație întregi fără semn (Unsigned Less Than):
local a = -1 -- În reprezentare binară pe 64 biți este 0xFFFFFFFFFFFFFFFF (cel mai mare unsigned)
local b = 10
-- Comparația standard cu semn:
print(a < b) -- true (-1 este mai mic decât 10)
-- Comparația unsigned:
print(math.ult(a, b)) -- false (0xFFFFFFFFFFFFFFFF este mai mare decât 10)
Utilitate: Esențial pentru lucrul cu adrese de memorie, sume de control (CRC32, hash-uri pe 64 biți) și protocoale de rețea de nivel scăzut.
Întrebări & Exemple de Cod:
math.ult și math.type în Lua 5.3+: Numere Fără Semn și Subtipuri NumericeAi o nelămurire despre utilizarea comenzii
math.ult și math.type în Lua 5.3+: Numere Fără Semn și Subtipuri Numericesau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.