类型转换

 

  • 自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型。
  • 特例: 可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围
    • short  b = 12;            //合法
    • short  b = 1234567;          //非法
  • 强制类型转换(Cast: 强制类型转换,又被称为造型,用于显式的转换一个数值的类型. 在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。
  • 强制类型转换的语法格式:“(type)var”,运算符“()”中的type表示将值var想要转换成的目标数据类型。
  • 当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同的值。
          例如: int x = 300;
                      byte bx = (byte)x;    //值为44
  • 不能在布尔类型和任何数值类型之间做强制类型转换。
      如果需要把布尔类型转换成一个数字该怎么办呢?
//使用三目运算符: 
Boolean b = true;
Int a = (b)?1:0;
 
    操作比较大的数时,要留意是否溢出,尤其是整数操作时  
int money = 1000000000;  //10亿
int years = 20;
int total = money*years;   //返回的是负数
long total1= money*years;  //返回的仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生了数据丢失
long total2 = money*((long)years);   //先将一个因子变成long,整个表达式发生提升。全部用long来计算。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值