为了账号安全,请及时绑定邮箱和手机立即绑定

幾個運算符如何正確運算

幾個運算符如何正確運算

ann800213 2015-07-11 15:15:51
1. char a = 10;System.out.println(a++ +10*4-2/2);我的理解:10*4= 40  ;  2/2=1 ;  40-1=39;  39+10=49 ;  49++ = 50 但正確答案是:49 2. byte a =127;System.out.println(++a);我的理解:128 正確答案:-128 3. char a =0; int b=10;System.out.println(- -a+b); 我的理解:10 正確答案:65545
查看完整描述

1 回答

?
乐观的z小筱

TA贡献1条经验 获得超1个赞

对于1你的理解是对的,只不过a++它是先参加输出,再自加。你可以在最后添加一句输出a的值。

System.out.println(a++ +10*4-2/2);//这一句其实等价于System.out.println(a+10*4-2/2);a=a+1;

对于2,3都是由于数据类型的取值范围造成的,超过了范围数据溢出了,

对于2,将a用二进制表示出来,byte是1个字节,也就是8位,取值范围是-128~127   ,a:0111 1111,进行了加1后变为1000 0000,首位为1就代表是负数,负数在计算机中是以补码(数值得绝对值的二进制反码+1)的形式存储,求十进制时将其-1再求反即可得到数值,加上负号即为所求原负数。

对于3,与2的解释相同。

查看完整回答
1 反对 回复 2015-07-11
  • 1 回答
  • 0 关注
  • 1384 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信