Модуль:Convert base — различия между версиями
Материал из Playzone Minecraft Wiki
(Новая страница: «local p = {} function p.fromDec( f ) local args = f.args or f local base = tonumber( args[2] ) or 16 local dec = tonumber( args[1] ) or 0 if base == 10 or d…») |
Softer (обсуждение | вклад) м (1 версия импортирована) |
(нет различий)
|
Текущая версия на 00:26, 18 января 2017
Для документации этого модуля может быть создана страница Модуль:Convert base/doc
local p = {} function p.fromDec( f ) local args = f.args or f local base = tonumber( args[2] ) or 16 local dec = tonumber( args[1] ) or 0 if base == 10 or dec == 0 then return dec elseif base == 16 then return string.format( '%X', dec ) else local chars = '0123456789ABCDEF' local pos local out = '' while dec > 0 do pos = math.mod( dec, base ) + 1 dec = math.floor( dec / base ) out = string.sub( chars, pos, pos ) .. out end return out end end function p.fromBase( f ) local args = f.args or f local fromBase = tonumber( args[3] ) or 10 local toBase = tonumber( args[2] ) or 16 local dec = tonumber( args[1], fromBase ) or 0 return p.fromDec{ dec, toBase } end function p.fromHex( f ) return p.fromBase{ f.args[1], f.args[2], 16 } end function p.fromBin( f ) return p.fromBase{ f.args[1], f.args[2], 2 } end return p