lua bit 模块

官方地址


1.调用

local bit = require("bit")

2.函数

定义函数

function printx(x)
  print("0x"..bit.tohex(x))
end

-- 转换
y = bit.tobit(x)
y = bit.tohex(x [,n])
y = bit.bnot(x)


--与或非
y = bit.bor(x1 [,x2...])
y = bit.band(x1 [,x2...])
y = bit.bxor(x1 [,x2...])


--逻辑左移/逻辑右移/算术右移
y = bit.lshift(x, n)
y = bit.rshift(x, n)
y = bit.arshift(x, n)

例子:

print(bit.lshift(1, 0))              --> 1
print(bit.lshift(1, 8))              --> 256
print(bit.lshift(1, 40))             --> 256
print(bit.rshift(256, 8))            --> 1
print(bit.rshift(-256, 8))           --> 16777215
print(bit.arshift(256, 8))           --> 1
print(bit.arshift(-256, 8))          --> -1
printx(bit.lshift(0x87654321, 12))   --> 0x54321000
printx(bit.rshift(0x87654321, 12))   --> 0x00087654
printx(bit.arshift(0x87654321, 12))  --> 0xfff87654

--左旋转/右旋转

y = bit.rol(x, n)
y = bit.ror(x, n)

printx(bit.rol(0x12345678, 12))   --> 0x45678123
printx(bit.ror(0x12345678, 12))   --> 0x67812345

--互换

y = bit.bswap(x)

printx(bit.bswap(0x12345678)) --> 0x78563412
printx(bit.bswap(0x78563412)) --> 0x12345678


你可能感兴趣的:(lua)