Lua 中 number 转换各种进制,以及string串转number

原文地址:http://blog.csdn.net/david_dai_1108/article/details/71699449

 1 --region : NumConvert.lua
 2 --Date   : 2017-5-11
 3 --Author : david
 4 
 5 -- Bin 2
 6 -- Oct 8
 7 -- Dec 10
 8 -- Hex 16
 9 
10 local _convertTable = {
11     [0] = "0",
12     [1] = "1",
13     [2] = "2",
14     [3] = "3",
15     [4] = "4",
16     [5] = "5",
17     [6] = "6",
18     [7] = "7",
19     [8] = "8",
20     [9] = "9",
21     [10] = "A",
22     [11] = "B",
23     [12] = "C",
24     [13] = "D",
25     [14] = "E",
26     [15] = "F",
27     [16] = "G",
28 }
29 
30 local function GetNumFromChar(char)
31     for k, v in pairs(_convertTable) do
32         if v == char then
33             return k
34         end
35     end
36     return 0
37 end
38 
39 local function Convert(dec, x)
40 
41     local function fn(num, t)
42         if(num < x) then
43             table.insert(t, num)
44         else
45             fn( math.floor(num/x), t)
46             table.insert(t, num%x)
47         end
48     end
49     
50     local x_t = {}
51     fn(dec, x_t, x)
52 
53     return x_t
54 end
55 
56 function ConvertDec2X(dec, x)
57     local x_t = Convert(dec, x)
58 
59     local text = ""
60     for k, v in ipairs(x_t) do
61         text = text.._convertTable[v]
62     end
63     return text
64 end
65 
66 function ConvertStr2Dec(text, x)
67     local x_t = {}
68     local len = string.len(text)
69     local index = len
70     while ( index > 0) do
71         local char = string.sub(text, index, index)
72         x_t[#x_t + 1] = GetNumFromChar(char)
73         index = index - 1
74     end
75 
76     local num = 0
77     for k, v in ipairs(x_t) do
78         num = num + v * math.pow(x, k - 1) 
79     end
80     return num
81 end
82 
83 --endregion

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值