为什么此代码显示的是48(ASCII代码为0)而不是0?
char c = '0';
Console.WriteLine(Convert.ToInt32(c));
有什么特殊原因吗?
因为,如MSDN所述,Convert.ToInt32方法(Char)返回:
一个32位带符号整数,表示value参数的UTF-16编码代码点。
代码点表示:
在字符编码术语中,代码点或代码位置是组成代码空间的任何数值。例如,ASCII包含128个代码点,范围从0h到7Fh
从逻辑的角度来看,您会期望得到什么结果Convert.ToInt32('a')
?转换用于类型转换,而不用于解释。解释可以通过Parse-kind方法完成。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句