93 lines
2.2 KiB
Lua
93 lines
2.2 KiB
Lua
|
||
|
||
|
||
-- 2023.6.29
|
||
-- 使用算数运算代替位运算
|
||
|
||
|
||
|
||
|
||
|
||
module = {}
|
||
|
||
function module:print_t ( t )
|
||
local print_r_cache={}
|
||
local function sub_print_r(t,indent)
|
||
if (print_r_cache[tostring(t)]) then
|
||
print(indent.."*"..tostring(t))
|
||
else
|
||
print_r_cache[tostring(t)]=true
|
||
if (type(t)=="table") then
|
||
for pos,val in pairs(t) do
|
||
if (type(val)=="table") then
|
||
print(indent.."["..pos.."] => "..tostring(t).." {")
|
||
sub_print_r(val,indent..string.rep(" ",string.len(pos)+8))
|
||
print(indent..string.rep(" ",string.len(pos)+6).."}")
|
||
elseif (type(val)=="string") then
|
||
print(indent.."["..pos..'] => "'..val..'"')
|
||
else
|
||
print(indent.."["..pos.."] => "..tostring(val))
|
||
end
|
||
end
|
||
else
|
||
print(indent..tostring(t))
|
||
end
|
||
end
|
||
end
|
||
if (type(t)=="table") then
|
||
print(tostring(t).." {")
|
||
sub_print_r(t," ")
|
||
print("}")
|
||
else
|
||
sub_print_r(t," ")
|
||
end
|
||
print()
|
||
end
|
||
|
||
|
||
|
||
|
||
function byte_to_hex(byte,size)
|
||
local str_table="0123456789ABCDEF"
|
||
local str_ret=""
|
||
if(size==2) then
|
||
str_ret=string.char(
|
||
-- 右移12位,//4096
|
||
string.byte( str_table,(math.floor(byte/4096)%16)+1),
|
||
string.byte( str_table,(math.floor(byte/256)%16)+1),
|
||
string.byte( str_table,(math.floor(byte/16)%16)+1),
|
||
string.byte(str_table,(byte%16)+1))
|
||
else
|
||
str_ret=string.char(string.byte(str_table,math.floor((byte%256)/16)+1),string.byte(str_table,(byte%256)%16+1))
|
||
end
|
||
return str_ret
|
||
end
|
||
|
||
-- function byte_to_num(byte)
|
||
-- local str_ret=""
|
||
-- while true do
|
||
|
||
|
||
-- 打印数组
|
||
function module:print_a ( a,size ,fmt)
|
||
local str=""
|
||
if(a==nil) then return end
|
||
if(size==nil) then size=1 end
|
||
for pos,val in pairs(a) do
|
||
str=str..byte_to_hex(val,size)..", "
|
||
end
|
||
print(str)
|
||
end
|
||
|
||
|
||
|
||
function module:__tostring()
|
||
return "print table package"
|
||
end
|
||
|
||
|
||
|
||
|
||
|
||
return module
|