• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

原文地址: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人参与评论

请发表评论

全部评论

专题导读
上一篇:
lua.命令收集发布时间:2022-07-22
下一篇:
lua 源码阅读顺序发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap