出于某种原因,以下代码不起作用:
char cValue = '8';
int digits = (int)cValue;
Run Code Online (Sandbox Code Playgroud)
它不断给出5或7的值,或沿着这些线的东西.
我只是好奇为什么 - 我正在使用它Character.getNumericValue(cValue);.
为什么会这样?
你可以将char类型转换为int,事实上你是.字符'8'的二进制表示实际上是56(十进制).请参阅任何ASCII图表以了解转换情况.你要找的是解析,而不是铸造.getNumericValue()解析char并为您提供其等效的数字.转换char只会改变类型并使位模式保持不变.然后根据它们所关联的变量的类型来解释这些位.