日期:2014-05-20  浏览次数:20805 次

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


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

------解决方案--------------------
定义了一个 byte类型的变量 A,byte的取值范围是-128—127
------解决方案--------------------
楼主的 代码错了哦
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 楼主试试看
------解决方案--------------------
4096为正溢出,需要加上n*负上限来保证不会溢出,这里负上限为-128,即4096一直加上-128直到得到的值在-128到127之间,算出来结果为0