将非数字字符转换为int
本文关键字:int 转换 数字字符 | 更新日期: 2023-09-27 18:08:10
我今天看到了这行代码:
int c = (int)'c';
我不知道你可以将char
转换为int
。所以我测试了一下,发现a=97, b=98, c=99, d=100等等……
为什么'a'是97?这些数字与什么有关?
其他人(到目前为止)都提到了ASCII。这是一个非常有限的观点-它适用于'a'
,但不适用于任何带有重音等的东西-这可以很容易地由char
表示。
char
只是一个无符号的16位整数,它是一个UTF-16 编码单元。通常相当于一个Unicode字符,但并非总是如此-有时一个完整字符需要多个代码单元。详细信息请参见System.Char
的文档。
从char
到int
的隐式转换(您不需要在代码中强制转换)只是以自然的、无损的方式将16位无符号整数转换为32位有符号整数-就像您有ushort
一样。
请注意,ASCII中的每个有效字符在UTF-16中具有相同的值,这就是为什么当示例仅来自ASCII集时,两者经常混淆的原因。
97
为字母a
的UTF-16编码单位值。
这个数字基本上与给定字符的UTF-16编码单元有关。
这些是表示字符的ASCII值
它们是对应的ascii码的十进制表示:http://www.asciitable.com/index/asciifull.gif那么'a'就是97
它们是字符代码,通常称为ASCII值。
从技术上讲,字符代码不是ASCII。