public static void main(String[] args) { byte A=(byte)4096; System.out.println(A); }
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); } }
所以128 byte值就是-128 因此值会在-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 => 10000000000 (2进制)byte是8位,所以保留后8位是00000000 => 0 啊
byte A=(byte)4096;
System.out.println(A);
}
当强制转换为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);
}
}