您的位置:首页 > 编程语言 > Java开发

JAVA问题总结之6--强制转换损失精度分析

2015-08-24 22:23 525 查看
问题6:JAVA强制转换损失精度分析:强制转换时是去掉高位保存低位

<pre name="code" class="java">package p1;

public class test4 {
public static void main(String[] args) {
long l1=12345l;
byte b1=(byte)l1;
System.out.println("long is "+l1);
System.out.println("byte is "+b1);
}
}




输出结果:

long is 12345
byte is 57


可以看的出来long型为12345,但是byte就变成了57.明显数据不对。

分析:

long为四个字节,12345存储格式为:



byte为一个字节,即8位,强制转换时是去掉高位保存低位,所以保存的是00111001,所以输出的byte型数据是57.

其他依次类推
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息