[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

• Subject: Re: boolean operators
• From: Inmate2993 <inmate2993@...>
• Date: Thu, 21 Sep 2006 12:45:05 -0400

Although it's a dirty hack, these routines would give somewhat of an equivalence to bitwise operators. I can understand why they were included explicitly in Lua, what with Lua_number being a float. For something that you'd set here and there, but not for something that'd be hit a few million times a second.

-- bit_set
-- Returns the flag power of 2 bitwise ior'ed into set
function bit_set( set, flag )
flag = math.pow(2, flag)
if math.mod((set/flag), 2)==0 then
set = set + flag;
end
return set;
end

-- bit_set
-- Returns the flag power of 2 bitwise and'ed from set
function bit_clear( set, flag )
flag = math.pow(2, flag)
if math.mod((set/flag), 2)==1 then
set = set - flag;
end
return set;
end

-- bit_toggle
-- Returns the flag power of 2 bitwise toggled in set
function bit_clear( set, flag )
flag = math.pow(2, flag)
if math.mod((set/flag), 2)==0 then
set = set + flag;
else
set = set - flag;
end
return set;
end

-- bit_test
-- Returns true or false, if the flag power of 2 is in set.
function bit_test( set, flag )
flag = math.pow(2, flag)
if math.mod((set/flag), 2)==1 then
return true
else
return false;
end
end

William C. Bubel