Files
checker_gen1/python/file/prints.lua
2023-06-29 18:12:56 +08:00

93 lines
2.2 KiB
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 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