前一段时间我找到了这段代码,我想了解它是如何工作的)
int index = (int)c % 32 +1;
我已经成功地使用这一行将字母转换为数字 - 例如 a 变成了 1(A 也是如此)有人可以解释这是怎么发生的吗(我已经看过一些 base 32 但我并不聪明)?还有有没有一种简单的方法可以将整数转换回字母?
最佳答案
所有字母都有整数代码。例如 'a'
的代码是 97。所以 (int)'a'
是 97。所以 (int)'a' % 32
是1、因为英文字母少于32个,所以全部转换正确。同样巧合的是,大小写字母之间的差异是 32(例如 'a' - 'A' == 32
)。所以这适用于大写字母。
要将整数转换回字母,您还可以使用整数代码。例如 'A' + index - 1
将为您提供字母表中带有数字 index
的大写字母。此外,'a' + index - 1
将给出具有相同数字的小写字母。
例如查看 ASCII 以查看符号的整数代码。
关于c# - 从字母转换为它们在字母表中的相对位置 (c#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26828915/