Safwanrockz

Hexadecimal to Decimal Converter

Jan 23rd, 2014
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.16 KB | None | 0 0
  1. function hexToDec(num)
  2.      if type(num)=="number" then
  3.          error("String expected, got number.", 1)
  4.      end
  5.      local K=string.len(num)
  6.      local N=K-1
  7.      local Z
  8.      local chars={}
  9.      for n in num:gmatch("[%w+]") do
  10.          table.insert(chars, n)
  11.      end
  12.      for key,v in ipairs(chars) do
  13.          if v=="A" then
  14.              chars[key]=tonumber(10)
  15.          elseif v=="B" then
  16.              chars[key]=tonumber(11)
  17.          elseif v=="C" then
  18.              chars[key]=tonumber(12)
  19.          elseif v=="D" then
  20.              chars[key]=tonumber(13)
  21.          elseif v=="E" then
  22.              chars[key]=tonumber(14)
  23.          elseif v=="F" then
  24.              chars[key]=tonumber(15)
  25.          end
  26.      end
  27.      if K==4 then
  28.          Z=(chars[1]*16^N)+(chars[2]*16^N-1)+(chars[3]*16^N-2)+chars[4]
  29.      elseif K==3 then
  30.          Z=(chars[1]*16^N)+(chars[2]*16^N-1)+chars[3]
  31.      elseif K==2 then
  32.          Z=(chars[1]*16^N)+chars[2]
  33.      elseif K>4 then
  34.          error("attempt to convert more than four numbers", 1)
  35.      elseif K<2 then
  36.          error("attempt to convert one number", 1)
  37.      end
  38.      return Z
  39. end
  40.  
  41. print(hexToDec("5CE"))
Advertisement
Add Comment
Please, Sign In to add comment