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