将非数字字符转换为int

本文关键字:int 转换 数字字符 | 更新日期: 2023-09-27 18:08:10

我今天看到了这行代码:

int c = (int)'c';

我不知道你可以将char转换为int。所以我测试了一下,发现a=97, b=98, c=99, d=100等等……

为什么'a'是97?这些数字与什么有关?

将非数字字符转换为int

其他人(到目前为止)都提到了ASCII。这是一个非常有限的观点-它适用于'a',但不适用于任何带有重音等的东西-这可以很容易地由char表示。

char只是一个无符号的16位整数,它是一个UTF-16 编码单元通常相当于一个Unicode字符,但并非总是如此-有时一个完整字符需要多个代码单元。详细信息请参见System.Char的文档。

charint的隐式转换(您不需要在代码中强制转换)只是以自然的、无损的方式将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。