“模块:BaseConvert”的版本间的差异

来自维阿百科
跳转至: 导航搜索
1.38>牛腩面
(导入1个版本)
 
(导入1个版本)
 
(没有差异)

2022年7月8日 (五) 21:15的最新版本

10进制转16进制

{{#invoke:BaseConvert|convert10_16|x=|digit=}}

16进制转10进制

{{#invoke:BaseConvert|convert16_10|x=|digit=}}


x: 要转换的数字。
digit: 转换后的位数,不足的用0补足,可以省略。

例子:

{{#invoke:BaseConvert|convert10_16|x=200|digit=3}}
0C8
{{#invoke:BaseConvert|convert16_10|x=10|digit=3}}
016

local p = {}

function p.convert10_16(frame)
    local args = (frame == mw.getCurrentFrame() and frame.args) or frame
	local strfmt = "%0" .. (args.digit or 0) .. "X"

    return string.format(strfmt, tonumber(args.x))
end

function p.convert16_10(frame)
    local args = (frame == mw.getCurrentFrame() and frame.args) or frame
	local strfmt = "%0" .. (args.digit or 0) .. "d"

    return string.format(strfmt, tonumber("0x" .. args.x))
end
 
return p