1. 程式人生 > >Lua 中 number 轉換各種進位制,以及string串轉number

Lua 中 number 轉換各種進位制,以及string串轉number

本文實現了Lua 中 number 轉換各種進位制,以及各種進位制 string 串轉 number。

實現思路:
1. 實現一個 table:_convertTable, 存下數字和字串之間的對應關係
2. 不同進位制之間的轉換:
- 二進位制:採用0和1表示,滿二進一
- 八進位制:採用0~7這八個數表示,滿八進一
- 十進位制:採用0~9這10個數表示,滿十進一
- 十六進位制:用16個阿拉伯數字表示,但我們只有0~9這十個數字,所以我們用A、B、C、D、E、F這五個數字表示10、11、12、13、14、15,字母不區分大小寫,滿十六進一

測試案例:

測試程式碼如下:

function Test:numConvert()
    require("app.arithmetic.NumConvert")
    local num = 10086

    print("---- dec convert to x ----\n")
    local text1 = ConvertDec2X(num, 10)
    local text2 = ConvertDec2X(num, 2)
    local text3 = ConvertDec2X(num, 8)
    local text4 = ConvertDec2X(num, 16
) local text5 = ConvertDec2X(num, 14) print(string.format("dec %d to dec %s", num, text1)) print(string.format("dec %d to bin %s", num, text2)) print(string.format("dec %d to Oct %s", num, text3)) print(string.format("dec %d to Hex %s", num, text4)) print(string.format("dec %d
to 14 %s"
, num, text5)) print("\n---- string to num ----\n") local num1 = ConvertStr2Dec(text1, 10) local num2 = ConvertStr2Dec(text2, 2) local num3 = ConvertStr2Dec(text3, 8) local num4 = ConvertStr2Dec(text4, 16) local num5 = ConvertStr2Dec(text5, 14) print(string.format("dec:%s to dec %d", text1, num1)) print(string.format("bin:%s to dec %d", text2, num2)) print(string.format("Oct:%s to dec %d", text3, num3)) print(string.format("Hex:%s to dec %d", text4, num4)) print(string.format("14:%s to dec %d", text5, num5)) end

如有錯誤,歡迎指出。

email:dxmdxm1992#gmail.com