gpt4 book ai didi

javascript - 在 JavaScript 中将字母转换为数字

转载 作者:数据小太阳 更新时间:2023-10-29 04:53:14 25 4
gpt4 key购买 nike

我想知道如何将输入的每个字母字符转换为数字。

例如a=1, b=2 ,c=3 直到 z=26

在 C 中,我设法做了类似的事情,方法是获取字符输入并将其显示为整数。但我不确定如何在 JavaScript 中执行此操作。

最佳答案

如果我没猜错,其他答案就太复杂了:

parseInt('a', 36) - 9; // 1
parseInt('z', 36) - 9; // 26
parseInt('A', 36) - 9; // 1
parseInt('Z', 36) - 9; // 26

现在,回答您在评论中提出的问题:

function sumChars(s) {
var i, n = s.length, acc = 0;
for (i = 0; i < n; i++) {
acc += parseInt(s[i], 36) - 9;
}
return acc;
}

console.log(sumChars("az"))

但是,与位置符号相比,这种整数符号非常耗费空间。比较两种表示法中的“baz”:

sumChars("baz") // 29
parseInt("baz", 36) // 14651

enter image description here

可以看到,字母的数量是一样的,但是36进制的整数要大很多,换句话说,36进制可以在同样的空间里存储更大的数。此外,将 10 进制整数转换为 36 进制整数在 JavaScript 中很简单:

(14651).toString(36) // "baz"

最后,当你想存储值时要小心。虽然听起来有悖常理,但 2 进制比 36 进制更紧凑。确实,一个字母至少占用 8 位内存:

(35).toString(2).length // 6 bits long
(35).toString(36).length * 8 // 8 bits long

因此我建议使用“真”整数进行存储,无论如何很容易回到基数 36。

关于javascript - 在 JavaScript 中将字母转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27877197/

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