<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://alttp.mymm1.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ABase_convert</id>
	<title>Module:Base convert - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://alttp.mymm1.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ABase_convert"/>
	<link rel="alternate" type="text/html" href="http://alttp.mymm1.com/w/index.php?title=Module:Base_convert&amp;action=history"/>
	<updated>2026-04-08T14:05:22Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>http://alttp.mymm1.com/w/index.php?title=Module:Base_convert&amp;diff=2714&amp;oldid=prev</id>
		<title>Matrethewey!9776: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://alttp.mymm1.com/w/index.php?title=Module:Base_convert&amp;diff=2714&amp;oldid=prev"/>
		<updated>2020-03-27T20:10:53Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:10, 27 March 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Matrethewey!9776</name></author>
	</entry>
	<entry>
		<id>http://alttp.mymm1.com/w/index.php?title=Module:Base_convert&amp;diff=2713&amp;oldid=prev</id>
		<title>alttp-wiki&gt;Fmp at 13:33, 7 April 2019</title>
		<link rel="alternate" type="text/html" href="http://alttp.mymm1.com/w/index.php?title=Module:Base_convert&amp;diff=2713&amp;oldid=prev"/>
		<updated>2019-04-07T13:33:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local digits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'&lt;br /&gt;
&lt;br /&gt;
function normalizeFullWidthChars(s)&lt;br /&gt;
	return mw.ustring.gsub(s, '[！-～]', function(s)&lt;br /&gt;
		return mw.ustring.char(mw.ustring.codepoint(s, 1) - 0xFEE0)&lt;br /&gt;
	end)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._convert(n, base, from, precision, width, default, prefix, suffix)&lt;br /&gt;
	n = '' .. n   -- convert to a string&lt;br /&gt;
&lt;br /&gt;
	n = n:gsub(' ','') -- kill whitespace&lt;br /&gt;
&lt;br /&gt;
	-- strip off any leading '0x' (unless x is a valid digit in the input base)&lt;br /&gt;
	from = tonumber(from)&lt;br /&gt;
&lt;br /&gt;
	if not from or from &amp;lt; 34 then&lt;br /&gt;
		local c&lt;br /&gt;
		n, c = n:gsub('^(-?)0[Xx]', '%1')&lt;br /&gt;
		if c &amp;gt; 0 and not from then from = 16 end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- check for a negative sign. Do this while the input is still in string form,&lt;br /&gt;
	-- because tonumber doesn't support negative numbers in non-10 bases.&lt;br /&gt;
	local sign = ''&lt;br /&gt;
	local c&lt;br /&gt;
	n, c = n:gsub('^-', '')&lt;br /&gt;
	if c &amp;gt; 0 then sign = '-' end&lt;br /&gt;
&lt;br /&gt;
	-- replace any full-width Unicode characters in the string with their ASCII equivalents&lt;br /&gt;
	n = normalizeFullWidthChars(n)&lt;br /&gt;
&lt;br /&gt;
	-- handle scientific notation with whitespace around the 'e' e.g. '5 e7'&lt;br /&gt;
	n = n:gsub('%s*[eE]%s*', 'e')&lt;br /&gt;
&lt;br /&gt;
	from = from or 10&lt;br /&gt;
	local num = tonumber(n, from)&lt;br /&gt;
	base = tonumber(base)&lt;br /&gt;
	precision = tonumber(precision)&lt;br /&gt;
	width = tonumber(width)&lt;br /&gt;
&lt;br /&gt;
	if not num or not base then return default or n end&lt;br /&gt;
&lt;br /&gt;
	local i, f = math.modf(num)&lt;br /&gt;
&lt;br /&gt;
	local t = {}&lt;br /&gt;
	repeat&lt;br /&gt;
		local d = (i % base) + 1&lt;br /&gt;
		i = math.floor(i / base)&lt;br /&gt;
		table.insert(t, 1, digits:sub(d, d))&lt;br /&gt;
	until i == 0&lt;br /&gt;
	while #t &amp;lt; (width or 0) do&lt;br /&gt;
		table.insert(t, 1, '0')&lt;br /&gt;
	end&lt;br /&gt;
	local intPart = table.concat(t, '')&lt;br /&gt;
&lt;br /&gt;
	-- compute the fractional part&lt;br /&gt;
	local tf = {}&lt;br /&gt;
	while f &amp;gt; 0 and #tf &amp;lt; (precision or 10) do&lt;br /&gt;
		f = f * base&lt;br /&gt;
		i, f = math.modf(f)&lt;br /&gt;
		table.insert(tf, digits:sub(i + 1, i + 1))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- add trailing zeros if needed&lt;br /&gt;
	if precision and #tf &amp;lt; precision then&lt;br /&gt;
		for i = 1, precision - #tf do&lt;br /&gt;
			table.insert(tf, '0')&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	fracPart = table.concat(tf, '')&lt;br /&gt;
&lt;br /&gt;
	-- remove trailing zeros if not needed&lt;br /&gt;
	if not precision then&lt;br /&gt;
		fracPart = fracPart:gsub('0*$', '')&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- add the radix point if needed&lt;br /&gt;
	if #fracPart &amp;gt; 0 then&lt;br /&gt;
		fracPart = '.' .. fracPart&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return (prefix or '') .. sign .. intPart .. fracPart .. (suffix or '')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.convert(frame)&lt;br /&gt;
	-- Allow for invocation via #invoke or directly from another module&lt;br /&gt;
	local args&lt;br /&gt;
	if frame == mw.getCurrentFrame() then&lt;br /&gt;
		args = frame.args&lt;br /&gt;
	else&lt;br /&gt;
		args = frame&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local n = args[1]&lt;br /&gt;
	local base = args[2]&lt;br /&gt;
	local from = args[3]&lt;br /&gt;
	return p._convert(n, base, from)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>alttp-wiki&gt;Fmp</name></author>
	</entry>
</feed>