Java中数据类型的转换规则

来源:互联网 发布:视频制作软件免费下载 编辑:程序博客网 时间:2024/05/17 00:10

Java中数据精度比较

byte<short<int<long<float<doublebyte<short<int<long<float<double

在Java中的小数默认为double类型。
强制转换:int a=(int)1.2;
计算过程中的转换:在计算过程中一个int和一个double运算的时候,运算结果会向
double类型转。
Java中常见的发生类型转换的上下文:赋值时类型转换、方法调用时类型转换、强制类型转换、字符串类型转换、数值类型提升。
当上下文要求类型转换时,Java基本数据类型转换规则有三种:
1、宽转换(自动类型转换或隐式转换):
自动转化:数据类型可以自动从低精度—>高精度。
(1):byte可以直接转换到short、int、long、float、double。
(2):short可以直接转换到int、long、float、double。
(3):char可以直接转换到int、long、float、double。
(4):int可以直接转换到long、float、double。
(5):long可以直接转换到float、double。
(6):float可以直接转换到double。
注:

1int转换到floatlong转换到double,很有可能会造成精度丢失。2byteshortint都是有符号的整数,在进行宽转换时要进行符号位的扩展。例:int i=(char

(byte)(-1)。i=65535。
2、窄转换:
(1):double可以直接转换到byte、short、char、int、long、float。
(2):float可以直接转换到byte、short、char、int、long。
(3):long可以直接转换到byte、short、char、int。
(4):int可以直接转换到byte、short、char。
(5):char可以直接转换到byte、short。
(6):short可以直接转换到byte、char。

注:1、窄转换在大多数情况下会丢失信息。例如:当int窄转换到byte时,会丢掉int的高3个字节(24位),将最低的一个字节(8位)放入byte中。2char转换到short,直接将char的两个字节放入short的两个字节,虽然两个都是2个字节,但是由于一个有符号、一个没符号,所以在转换过程中可能由一个正数变成了一个负数。

3、宽窄同时转换:
宽窄同时转换发生在byte转换到char期间。其转换过程为:先将byte宽转换到int,再将int窄转换到char。

1 0
原创粉丝点击