我今天遇到了这行代码:
int c = (int)'c';
我不知道你可以投了char一个int.所以我测试了它,发现a = 97,b = 98,c = 99,d = 100等等......
为什么'a'97?这些数字与什么有关?
Jon*_*eet 11
其他人(到目前为止)都提到了ASCII.这是一个非常有限的观点 - 它适用于'a',但不适用于任何带有重音等的东西 - 这很容易被表示char.
A char只是一个无符号的16位整数,它是一个UTF-16 代码单元.通常这相当于Unicode字符,但并非总是如此 - 有时单个完整字符需要多个代码单元.有关System.Char更多详细信息,请参阅文档.
隐式转换char为int(您不需要代码中的强制转换)只是以自然,无损的方式将该16位无符号整数转换为32位有符号整数 - 就像您有一个ushort.
请注意,ASCII中的每个有效字符在UTF-16中都具有相同的值,这就是为什么当这些示例只是来自ASCII集的示例时,两者经常混淆.