日落20191212001 - Lua之二进制位移次数计算

环境

系统:Windows 10
引擎:Lua5.3.5

用途

例如:以标志位记录一系列任务的完成情况,通过其差值位移次数可以判断这是第几个任务(即:任务索引)。

实例

local old_flag = 223 -- 11011111
local new_flag = 255 -- 11111111
local diff_flag = new_flag - old_flag -- 32
local temp_flag = diff_flag
local index = 0

print('flag change:')
while temp_flag > 0 do
	temp_flag = temp_flag >> 1
	print(temp_flag)
	index = index + 1
end

print('index:', index)

结果

flag change:
16
8
4
2
1
0
index:	6
[Finished in 0.1s]

以上简单回顾。

参考资料:

Lua 5.3 参考手册 https://www.runoob.com/manual/lua53doc/manual.html

你可能感兴趣的:(Lua)