Advertisement
rockbandcheeseman

Convertbase

Jun 5th, 2013
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.65 KB | None | 0 0
  1. function convertbase(num, ib, ob)
  2.  
  3.     num = tostring(num)
  4.  
  5.     local digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  6.  
  7.     if ib == ob then return num end
  8.     if ib > 36 or ib < 2 or ob > 36 or ob < 2 then return nil end
  9.  
  10.     local dec = 0
  11.    
  12.     if ib ~= 10 then
  13.         -- Convert to Decimal
  14.         local len = string.len(tostring(num))
  15.         for i = 1,len do
  16.             local d = tonumber(string.sub(num, i, i))
  17.             dec = dec + (d * (ib) ^ (len - i))
  18.         end
  19.     else
  20.         dec = num
  21.     end
  22.  
  23.     -- Convert from Decimal to Output Base
  24.     local str = ""
  25.     repeat
  26.         local d = (dec % ob) + 1
  27.         dec = math.floor(dec / ob)
  28.         str = string.sub(digits, d, d) .. str
  29.     until dec == 0
  30.  
  31.     return str
  32. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement