为什么我不能从char转换为int?

Cod*_*ody 3 java casting char

出于某种原因,以下代码不起作用:

char cValue = '8';
int digits = (int)cValue;
Run Code Online (Sandbox Code Playgroud)

它不断给出5或7的值,或沿着这些线的东西.

我只是好奇为什么 - 我正在使用它Character.getNumericValue(cValue);.

为什么会这样?

Rya*_*art 6

可以将char类型转换为int,事实上你是.字符'8'的二进制表示实际上是56(十进制).请参阅任何ASCII图表以了解转换情况.你要找的是解析,而不是铸造.getNumericValue()解析char并为您提供其等效的数字.转换char只会改变类型并使位模式保持不变.然后根据它们所关联的变量的类型来解释这些位.