数据类型转换

数据类型转换必须满足如下规则:

  • 1. 不能对boolean类型进行类型转换。

  • 2. 不能把对象类型转换成不相关类的对象。

  • 3. 大的类型转换为小的类型必须使用强制类型转换。

  • 4. 转换过程中可能导致溢出或损失精度。

int i =128;   
byte b = (byte)i;

因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。

  • 5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。

.

自动类型转换

整型、常量、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

转换规则:从存储范围小的类型到存储范围大的类型。

    图中箭头左边的数值可以自动转换为右边的数值。

       (2)byte型可以转换为short、int、、long、float和double; 
  (3)short可转换为int、long、float和double; 
  (4)char可转换为int、long、float和double; 
  (5)int可转换为long、float和double; 
  (6)long可转换为float和double; 
  (7)float可转换为double;

char字符是以二进制编码在计算机内部存储运行的,每一个二进制编码对应一个字符。

byte占一个字节 8位, 数值范围在-128~127

short占两个字节 16位 数值范围在(-2^15)~(2^15 - 1)

char占两个字节 16位,数值范围在0~65535

int占四个字节   32位 数值范围在(-2^31)~(2^31 - 1)

char的数值范围完全包括在int数值范围中,所以char可以自动转换为int

但是int不可以自动转换成char。

byte/short虽然所占内存位宽比char小或者相等,符合小到大的自动转换规则,但是byte/short的数值范围没有完全包括在char的数值范围中,所以二者不与char类型兼容,所以byte/short不可以自动转换为char。

实例

public class ZiDongLeiZhuan{ 
    public static void main(String[] args){
         char c1='a';//定义一个char类型 
         int i1 = c1;//char自动类型转换为int 
         System.out.println("char自动类型转换为int后的值等于"+i1); 

         char c2 = 'A';//定义一个char类型 
         int i2 = c2+1;//char 类型和 int 类型计算    
         System.out.println("char类型和int计算后的值等于"+i2); 
    }
}

运行结果为:

char自动类型转换为int后的值等于97
char类型和int计算后的值等于66

解析:c1 的值为字符 a ,查 ASCII 码表可知对应的 int 类型值为 97, A 对应值为 65,所以 i2=65+1=66。

强制类型转换

  • 从存储范围大的类型到存储范围小的类型。

  • 格式:(type)value;

  • 实例

    public class QiangZhiZhuanHuan{ 
        public static void main(String[] args){
             int i1 = 123; byte b = (byte)i1;//强制类型转换为byte 
             System.out.println("int强制类型转换为byte后的值等于"+b); 
            } 
    }

    运行结果:

    int强制类型转换为byte后的值等于123

隐含强制类型转换

  • 1、 整数的默认类型是 int。

  • 2. 小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值