Minecraft Wiki

The Minecraft Wiki is no longer considered as official by Microsoft and therefore several changes are required to be made, including to the wiki's logo. Please read this announcement for more information.

READ MORE

Minecraft Wiki
Advertisement
Minecraft Wiki
[view | edit | history | purge]DocumentationJump to code ↴

This module allows any number base to be converted to any other number base up to base 15.

It provides 3 convenience functions: fromDec, fromHex, and fromBin, for converting from decimal, hexadecimal, and binary, to any other base; and one main function: fromBase, for everything else.

See also

[view | edit | history | purge]The above documentation is transcluded from Module: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
Advertisement