java类型强制转换

来源:互联网 发布:js div显示隐藏 编辑:程序博客网 时间:2024/04/30 13:22

隐式类型转换:

小范围的数据类型自动提升为大范围的数据类型

强制类型转换

大范围的数据类型转换成小范围的数据类型

小范围的数据类型 变量名=(小范围的数据类型)值;


byte c=(byte)130;

byte c1=(byte)(-130);


System.out.println(c);
System.out.println(c1);

// java采用补码存储整数,int32位,byte8位
// 130在内存中的存储形式为:0000 0000 0000 0000 0000 0000 1000 0010
// 强制转换会造成高位截断问题,补码的第一位表示符号位,0正1负,截断后为1000 0010,是负数
// 转换前后,补码由正数变成负数,补码为原码按位取反加1;
// 000 0010变为111 1101+1=111 1110(126)
// 为负数,数值是-126

// -130(符号位是1,其余为取反加1)
// -130在内存中的表现形式为1111 1111 1111 1111 1111 1111 0111 1110
//      截断后的8位为0111 1110
// 为正数,数值是126


0 0