为什么int a=5'0';在java中是可能的吗?
public static void main( String... args){
int a = 5 - '0';
System.out.println(a); //-43
Integer b = 5 - '0';
System.out.println(b); //-43
System.out.println(Integer.valueOf(a)); //-43
System.out.println(String.valueOf(b)); //-43
}
对于这段代码,我有两个问题
- 为什么
int=5-'0';
是可能的5
是一个可以的int,但是在它旁边是一个字符,而不是为什么它没有抛出任何错误李> - 是结果的ASCII值吗?结果将如何计算李>
我知道43
的ASCII值是+
,但它会将'0'
转换为ASCII,然后进行操作吗
# 1 楼答案
以上引语来自documentation。它清楚地说,
char
的最小值是0
,最大值是65,535
。Java提供了从char
到int
的转换根据specification的说法:
# 2 楼答案
通过对int和char执行
-
操作,将使用char的ascii值(在您的示例中为48)。因此,表达式被转换为: