在java中一个混合运算10+'a'+1.5*3,它是怎么运算的结果是111.5
发布网友
发布时间:2022-12-03 03:53
我来回答
共5个回答
热心网友
时间:2023-11-14 06:50
你注意一下Java在运算时候的一些规则即可:
1)在优先级相同的情况下,Java是从左到右计算的;
2)在不同类型之间进行计算时,Java一般会将内部宽度比较小的将转换成大的,以避免溢出。
比如10是int,内部32位,'a'是char类型,内部16位,
‘a'是一个char类型,其ascii码是97,在运算时就是用的是这个值;
将其转换成32位的int的97
3) 运算符是有优先级的。乘法的优先级高于加法,这和你学过的数学知识是一致的。最后遇到的1.5*3会得到double类型的4.5
因此最后结果就是 10 + 97 + 4.5 = 111.5,
但是,如果你是用System.out.println打印的,java转换成最高精度,也就是double并显示;
如果你把这个值赋给了int,那么结果是111,会舍去小数(而不是四舍五入)。
热心网友
时间:2023-11-14 06:51
它先自动把'a'转化成ASCILL码,就是97,然后做四则运算
热心网友
时间:2023-11-14 06:51
逻辑上字符是不能和数字相加的。
所以在这段代码里,字符a会被强制转化为int,而字符a的ascii码是97,所以你把它等97
热心网友
时间:2023-11-14 06:52
'a'被转成ASCII码 是 97 然后 10+97+1.5*3 = 111.5
热心网友
时间:2023-11-14 06:52
是10+a的ascii码(97)+1.5*3
int n = 10+(int)'a'+1.5*3;