java 的类型转换方式 隐式转换

  • byte等整型转int,最高位(符号位保留),中间补0
byte bt=-13;

bt
    源码:1000 1101
    反码:1111 0010
    补码:1111 0011

int it=bt;

it  源码:1000 0000 0000 1101
    反码:1111 1111 1111 0010
    补码:1111 1111 1111 0011

​
  • 不存在byte和short常量,整型常量只有int型和long型
    byte bt = 13;
    
    short st = 25;
    
    char ch = 'a';
    
    上面代码中的13,25,'a'(97)都是int型的常量,bt和st获取的是int截断后的数据,实际上是类似执行下列语句
    
    int i = 13;
    byte bt = (byte)i;
    
    
    
    int i = 13;
    short st = (short)i;
    
    所以进行整型运算时如果没有long数据,运算结果一定是int