找回密码
 register

QQ登录

只需一步,快速开始

查看: 210|回复: 0

[游戏教程] LUA 十进制转32进制

[复制链接]

[游戏教程] LUA 十进制转32进制

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:95
  • 打卡月天数:18
  • 打卡总奖励:95
  • 最近打卡:2025-01-20 23:11:04
Waylee

主题

0

回帖

1万

积分

仙帝

积分
12398
Waylee 2024-2-8 19:44 | 显示全部楼层 |阅读模式

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×
这个函数首先检查是否为0,因为0在任何进制中都是0。然后,它定义了一个包含32进制数位的字符串digits。通过循环,函数计算输入数值num的每一个32进制数位,将其添加到结果字符串base32的前面,直到num变为0。每次循环中,num都被除以32,并向下取整以准备下一次迭代。
这种方法可以轻松地修改以支持其他的基数转换,只需调整digits字符串和除法的基数即可。
function decToBase32(num)
    if num == 0 then return "0" end

    local base32 = ""
    local digits = "0123456789abcdefghijklmnopqrstuv"

    while num > 0 do
        local remainder = num % 32
        base32 = string.sub(digits, remainder + 1, remainder + 1) .. base32
        num = math.floor(num / 32)
    end

    return base32
end

-- 示例
print(decToBase32(10))  -- 输出: a
print(decToBase32(31))  -- 输出: v
print(decToBase32(32))  -- 输出: 10
print(decToBase32(123456789))  -- 一个较大的数值示例


您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |天天打卡

GMT+8, 2025-1-21 01:57 , Processed in 0.103265 second(s), 7 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表