因为int型值范围大一些,所以对比他范围小的类型赋值时,需要进行强制的类型转换,如:
byte b = (byte)i;
char c = (char)i;
short i = (short)i;
这样就可以了!

解决方案 »

  1.   

    存储空间决定的:
    byte  1个字节
    char  2个字节
    short 2个字节
    int   4个字节主要是存储12个这个数字的空间够了,呵呵
      

  2.   

    我记得以前有种说法是12应该模认为是int型,就像12.0默认为double型一样吗?
      

  3.   

    12 可以是 int,但也可以是 byte,看12 是赋值给谁了
      byte b=1000; /Compile Error
    记住下面的关系就可以了 
      byte  --->   short ---->   int ----> long ---> float --> double 
                                 | 
                   char  -------- 
      虽然 byte 精度比 char 低,但因为 可能为负数,所以不能赋值给char
      只要能取负数的都是不能赋值给 char 的,除非 cast