从字母转换为字母表中的相对位置(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开始的字母表中的字符索引. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c#-4.0 – 使用Comet / XMPP和Microsoft Stack上的WebSocke
- pyrhon SQLite数据库
- Cocos2dx-lua -- 入门-class
- 了解Flex SDK系列教程(1.Ant和FlexTask)
- Sqlite DateTime 类型 读取和写入格式 注意的问题
- c# – Winform应用程序,窗口最小化强制垃圾收集?
- 为什么可以在循环中声明复制objective-C对象,但不能按顺序声
- swift – 如何检测互联网连接是通过WiFi还是以太网?
- Flex中通过verticalScrollPosition和maxVerticalScrollPosi
- c# – 如何识别哪些单元/列设置了过滤器?