加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

从字母转换为字母表中的相对位置(c#)

发布时间:2020-12-15 23:44:36 所属栏目:百科 来源:网络整理
导读:前一段时间我发现了这段代码,我想了解它是如何工作的) int index = (int)c % 32 +1; 我已成功使用此行将字母转换为数字 – 例如a变为1(A也是如此)有人可以解释一下这是怎么发生的(我看起来有点基础32但不是更明智)?还会有将整数转换回字母的简单方法? 解决
前一段时间我发现了这段代码,我想了解它是如何工作的)

int index = (int)c % 32 +1;

我已成功使用此行将字母转换为数字 – 例如a变为1(A也是如此)有人可以解释一下这是怎么发生的(我看起来有点基础32但不是更明智)?还会有将整数转换回字母的简单方法?

解决方法

这完全取决于字符(和字符串)的实际表示方式.每个字符都使用 code points编码,这些只是数字.许多代码点构成一个代码页,它本质上是一个将数字映射到实际字符的表.

忽略Unicode附带的大代码页,你现在可以看看ASCII,这是前128个代码点的编码.在那里,您可以看到标准大写字母从数字65开始,而小写字母从数字97开始.

所以在你的公式中,如果我们假设c总是字母表中的字符,我们知道它的数值在65到90之间,或者在97到122之间.所以我们得到字符“A”或“a”值分别为65或97.

剩下的就是巧合,大写和小写字母从32开始,65模32是1.这使得(int)c%32给你从1开始的字母表中的字符索引.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读