wor*_*138 1 java int casting char
系统:Windows Vista 32位,Java 6.0.2
关于将字符转换为整数,我有几个问题.我运行下面的代码,将myInt保留为值4:
char myChar = '4';
int myInt = myChar - '0';
Run Code Online (Sandbox Code Playgroud)
现在,这种转换是Java自动完成的吗?将ascii值'0'从ascii'4'减去,然后在幕后投射到一个int?这对我来说很困惑,因为当我尝试反向操作时,我必须实际将结果转换为char:
int anotherInt = 5;
char newChar = anotherInt + '0'; //gives error
char newChar = (char)(anotherInt + '0'); //works fine
Run Code Online (Sandbox Code Playgroud)
这是否发生是因为Java会自动将(anotherInt +'0')转换为int,如第一个示例中所示?谢谢.
cdh*_*wie 22
从char(2字节类型)到int(4字节类型)的转换在Java中是隐含的,因为这是一个扩展转换 - 您可以存储在一个可以存储的所有可能值char中int.反向转换不是隐含的,因为它是一个缩小的转换 - 它可能丢失信息(int被丢弃的高两个字节).你必须总是明确地在这种场景中投射,作为告诉编译器的一种方式"是的,我知道这可能会丢失信息,但我仍然想要这样做."
| 归档时间: |
|
| 查看次数: |
15177 次 |
| 最近记录: |