我正在尝试将代码从C转换为Lua,我遇到了问题. 如何在Lua中翻译按位AND? 源代码包含: if((command 0x80)== 0) … 怎么能在Lua做到这一点? 我正在使用Lua 5.1.4-8 这是纯Lua 5.1中基本的,孤立的按
如何在Lua中翻译按位AND?
源代码包含:
if((command& 0x80)== 0)
…
怎么能在Lua做到这一点?
我正在使用Lua 5.1.4-8
这是纯Lua 5.1中基本的,孤立的按位和实现:function bitand(a, b)
local result = 0
local bitval = 1
while a > 0 and b > 0 do
if a % 2 == 1 and b % 2 == 1 then -- test the rightmost bits
result = result + bitval -- set the current bit
end
bitval = bitval * 2 -- shift left
a = math.floor(a/2) -- shift right
b = math.floor(b/2)
end
return result
end
用法:
print(bitand(tonumber("1101", 2), tonumber("1001", 2))) -- prints 9 (1001)
