关于java中的类型转换和前置++i、后置i++

    java里面高精度向低精度转换,需要进行强制转换,转换后数字会按照各自所占的字节数进行截取。一个字节占8位。例如
 short a=128;
 byte b=(byte) a;

这个short占连个字节,byte占一个字节,128的二进制就是0000000010000000,转为byte就是截取后八位10000000,就是-128.

  short s1=1;
  s1=(short)(s1+1);

这种s1+1的时候就会把s1变成int类型,如果不进行强制转换,就会报编译错误

 s1+=1;

如果是这样,java对这种有专门的运算符优先级,就不会编译报错。

前置++i,代表不管有没有其他操作都+1,i++要当前面操作执行完毕才进行+1,按从左到右顺序

     i=1;   
System.out.println(i+++i++);
这个结果i=3,i++先不执行,接着执行++i,此时i等于2,接着执行第二个i++,此时i=3,程序计算结束。

猜你喜欢

转载自blog.csdn.net/zhangludcsdn/article/details/79701214