Сейчас в QLua появилась встроенная функция bit.test, которая решает ту же задачу, т.е. смысла в использовании функции CheckBit больше нет !
true - флаг установлен
false - флаг не установлен
-- Функция проверяет установлен бит, или нет (возвращает true, или false) CheckBit = function(flags, _bit) -- Проверяет, что переданные аргументы являются числами if type(flags) ~= "number" then error("Ошибка!!! Checkbit: 1-й аргумент не число!") end if type(_bit) ~= "number" then error("Ошибка!!! Checkbit: 2-й аргумент не число!") end if _bit == 0 then _bit = 0x1 elseif _bit == 1 then _bit = 0x2 elseif _bit == 2 then _bit = 0x4 elseif _bit == 3 then _bit = 0x8 elseif _bit == 4 then _bit = 0x10 elseif _bit == 5 then _bit = 0x20 elseif _bit == 6 then _bit = 0x40 elseif _bit == 7 then _bit = 0x80 elseif _bit == 8 then _bit = 0x100 elseif _bit == 9 then _bit = 0x200 elseif _bit == 10 then _bit = 0x400 elseif _bit == 11 then _bit = 0x800 elseif _bit == 12 then _bit = 0x1000 elseif _bit == 13 then _bit = 0x2000 elseif _bit == 14 then _bit = 0x4000 elseif _bit == 15 then _bit = 0x8000 elseif _bit == 16 then _bit = 0x10000 elseif _bit == 17 then _bit = 0x20000 elseif _bit == 18 then _bit = 0x40000 elseif _bit == 19 then _bit = 0x80000 elseif _bit == 20 then _bit = 0x100000 end if bit.band(flags,_bit ) == _bit then return true else return false end end |
Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей !!!