本文主要是介绍LuaBit 对于LUA语言位操作符LUA语言实现,依赖于LUA Number的定义。(可参看未定义的实现部分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//位操作运算不能对浮点型进行操作。在进行位操作时进行检查
local function check_int(n)-- checking not floatif(n - math.floor(n) > 0) thenerror("trying to use bitwise operation on non-integer!")end
end//把LUA Number转换成位模式并存储在table中
local function to_bits(n)check_int(n)if(n < 0) then-- negativereturn to_bits(bit.bnot(math.abs(n)) + 1)end-- to bits tablelocal tbl = {}local cnt = 1while (n > 0) dolocal last = math.mod(n,2)if(last == 1) thentbl[cnt] = 1elsetbl[cnt] = 0endn = (n-last)/2cnt = cnt + 1endreturn tbl
end//把二进制位table转换成LUA Number数据类型
local function tbl_to_number(tbl)local n = table.getn(tbl)local rslt = 0local power = 1for i = 1, n dorslt = rslt + tbl[i]*powerpower = power*2endreturn rslt
end//把tbl_m和tbl_n扩展长度为位数。以两者中位数大的基准。并以零补充位置
local function expand(tbl_m, tbl_n)local big = {}local small =
这篇关于LuaBit 对于LUA语言位操作符LUA语言实现,依赖于LUA Number的定义。(可参看未定义的实现部分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!