public static void main(String args[]){ 
     byte A=(byte)=4096;
    system.out.println(A);\\为什么A的值是10
    }

解决方案 »

  1.   

    byte 最大127 最小-128
    所以128 byte值就是-128 因此值会在-128-127之间游荡..
      

  2.   

    定义了一个 byte类型的变量 A,byte的取值范围是-128—127
      

  3.   

    楼主的 代码错了哦
    public static void main(String[] args) {
    byte A =(byte)4096;//将4096 int强制转换成byte类型
    System.out.println(a);//输出为0
    }
    因为byte的取值范围是-128~127 即256一个循环
    4096=256*16
    则4096在byte类型中其实就相当于0  强转成byte类型过后为0再赋值给A  所以A的值为0
    输出应该是0   楼主试试看
      

  4.   

    是0啊,
    4096 => 10000000000 (2进制)byte是8位,所以保留后8位是00000000  =>   0 啊
      

  5.   

    byte取值范围不够清晰,还有类型转换
      

  6.   

    public static void main(String[] args) {
    byte A=(byte)4096;
    System.out.println(A);
    }
      

  7.   

    4096(10进制)=1000000000000(2进制)。
    当强制转换为Byte型时,byte为1个字节,8位。而4096转换为byte后,由于超出8位,会发生截取。只要最末尾8位。因此输出0.public class test {
     public static void main(String args[])
     {
     byte A =(byte)4096; //把4096前的赋值号去掉,强制类型转换不需要赋值号
     System.out.println(A);
     }
    }