在 JavaScript 中,您可以将数字转换为具有特定 基数 的字符串表示形式,如下所示:
(12345).toString(36) // "9ix"
…您可以像这样将其转换回常规数字:
parseInt("9ix", 36) // 12345
36 是您可以指定的最高基数。它显然使用字符 0-9
和 a-z
作为数字(总共 36 个)。
我的问题:将数字转换为 base 64 表示的最快方法是什么(例如,使用 A-Z
和 -
和 _
digit )?
更新:有四个人发布了回复,说这个问题重复了,或者我正在寻找 Base64。我不是。
“ Base64 ”是一种用简单的 ASCII 字符集对二进制数据进行编码的方法,以使其在网络传输等方面是安全的(这样纯文本系统就不会混淆二进制文件)。
那不是我要问的。我问的是将 数字 转换为基数 64 字符串表示形式。 (JavaScript 的 toString(radix)
自动为任何不超过 36 的基数执行此操作;我需要一个自定义函数来获取基数 64。)
更新 2 :这里有一些输入和输出示例……
0 → "0"
1 → "1"
9 → "9"
10 → "a"
35 → "z"
61 → "Z"
62 → "-"
63 → "_"
64 → "10"
65 → "11"
128 → "20"
etc.
原文由 callum 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是数字解决方案的草图(不是字节数组:)
仅适用于正数,忽略小数部分,并且没有真正测试——只是一个草图!
更新:这是对上面的一些(非常轻量级的)测试,用于在具有 console.log 的 NodeJs 中运行。