基本数据类型转换

基本数据类型之间的转换

  • java中基本数据类型之间的计算要求数据类型必须一致,如果不一致的话会发生转换,转换分为自动转换和强制转换

  • 取值范围小的类型转换成取值范围大的类型时自动转换
    int i = 5; byte b = 1; int c = i + b ;

  • 在这里c是int类型,是将b进行了升级自动转换。其实b已经被jvm转换成了int类型。

  • 如果我们写成这样会报错

public class QiuHe01{  
public static void main (String [] args)
{int  i  = 5;
 byte b = 1 ;
 //byte c = i + b;//这么写会报错 ,只能写成int类型
 int c  = i +  b;
 system out println(c);
 }
} 
public class QiuHe02{
public static void main(String[] args) { int i = 1;
double d = 2.5;
//int类型和double类型运算,结果是double类型
//int类型会提升为double类型
double e = d+i; System.out.println(e);
}
}
  • 因为byte是8字节int是32字节他们运算时会自动补成32字节所以byte会自动转换成int
  • 转换原则有小到大,有整数到浮点数byte、short、int、long—>folat—>double

强制转换

  • 如果将3.14赋值成int类型变量会发生什么?产生编译失败,肯定无法赋值。
    int i = 1.5; // 错 误
  • double类型内存64个字节,int类型内存32个字节。 大不能转小想要赋值成功,只有通过强制类型转换。
  • 格式:数据类型 变量名 = (数据类型)被转数据值;
  • int i = (int)1.5;// double类型数据强制转成int类型,直接去掉小数点。
  • 特殊情况如果变量的话需要强转
public class QiuHe03{
public static void main(String[] args) {
//short类型变量,内存中2个字节short s = 1;
/*
出现编译失败
s和1做运算的时候,1是int类型,s会被提升为int类型
s+1后的结果是int类型,将结果在赋值会short类型时发生错误short内存2个字节,int类型4个字节
必须将int强制转成short才能完成赋值
*/
s = s + 1;//编译失败
s = (short)(s+1);//编译成功
s =  1 + 1;//s是short类型,但是两个常量相加没有超过short作用域所以不用强转
}
}
  • 浮点转成整数,直接取消小数点,而非四舍五入,可能造成数据损失精度。如int强制转成double会砍掉小数点后字节,造成数据丢失。

ASCII编码表

  • 先看一个代码
public classQiuHe04{}
public static void main(String[] args) {
//字符类型变量
char c = 'a';
 int i = 1;
//字符类型和int类型计算
System.out.println(c + i);//输出结果是98
}
}
  • 98从何而来?是因为jvm对‘a’进行了编译,把他变异成了97。那对应关系是什么呢?需要ASCII表
  • 在计算机的内部都是二进制的0、1数据,如何让计算机可以直接识别人类文字的问题呢?就产生出了编码表的概念。编码表 :就是将人类的文字和一个十进制数进行对应起来组成一张表格。
  • 将所有的英文字母,数字,符号都和十进制进行了对应,因此产生了世界上第一张编码表ASCII(American Standard Code for Information Interchange 美国标准信息交换码)
  • 在char类型和int类型计算的过程中,char类型的字符先查询编码表,得到97,再和1求和,结果为98。char类型提升 为了int类型。char类型内存16字节,int类型内存32字节。
  • 常用到的对应关系0–48/9–57/A–65/Z–90/a–97/z–122
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值