gpt4 book ai didi

Bash 十进制到 base 62 的转换

转载 作者:行者123 更新时间:2023-11-29 08:51:25 26 4
gpt4 key购买 nike

我想反转以下 bash 命令执行的操作:

$ echo $((62#a39qrT))
9207903953

即将 十进制 9207903953 转换为 base 62,保持 bash 标准 {0..9},{a..z},{ A..Z.

我知道我可以使用 bc 来做到这一点,但我必须手动转换每个字符。例如,我目前这样做:

BASE62=($(echo {0..9} {a..z} {A..Z}))
for i in $(echo "obase=62; 9207903953" | bc)
do
echo -n ${BASE62[$i]} #Doesn't work if bc's output contains leading zeroes
done

必须有一种方法可以用一种不那么“hackier”的方式来做到这一点。您知道更有效地执行此操作的方法吗?

编辑:更改了 bc 输入。

最佳答案

我非常感谢您提出的解决方案,而且我想直接使用 bash 没有办法绕过它。这是您遗漏的一点:

BASE62=($(echo {0..9} {a..z} {A..Z}))
for i in $(bc <<< "obase=62; 9207903953"); do
echo -n ${BASE62[$(( 10#$i ))]}
done && echo

输出:

a39qrT

关于Bash 十进制到 base 62 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14471692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com