- 基本数据类型转换的前提是:可以转
- 两种数据类型转换方式:自动类型转换(隐式类型转换)和强制类型转换(显式类型转换)
- 自动类型转换(隐式类型转换):表数范围小的向表数范围大的进行转换
整数向小数进行转换
4. 强制类型转换(显式类型转换):表数范围大的向表数范围小的进行转换
小数向整数进行转换
自动类型转换
byte b1=120;
int i1=b1;
System.out.println("i1="+i1);
// 左边的变量 int 类型 保存的是int类型的数据
// 右边的变量 byte 类型 保存的是byte类型的数据
// 将右边的变量当中保存的数据 ,交给左边的变量保存
// 右边:byte
// 左边:int
// 右边的byte类型交给int类型保存
// byte 表述范围< int表述范围
// 小向大转换
int in1=2000;
double d1=in1;
System.out.println("d1="+d1);
结果展示:
强制类型转换
格式: 目标数据类型 变量名=(目标数据类型)原本的数据
//120没有超过byte的取值范围
int i2=120;
byte b2=(byte) i2;//120
//左边的变量byte-->保存byte类型的数字
// 右边的变量int-->保存int类型的数字
//int交给byte保存
// -->存在一种可能性:int存储的数字,超出了byte表述范围
// -->解决方案:按照指定操作进行:
// -->格式:目标数据类型 变量名=(目标数据类型)原本的数据
//130超出了BYTE的取值范围
int i3= 130;
byte b3=(byte)i3;
System.out.println(b3);//-126
//double类型转int型:小数转整数
double d3=3.14;
int in3=(int)d3;
System.out.println(in3);//3
展示结果:
将'c'-->'C':根据ASCII进行转化
package com.qf.javase.day02.exe;
/**
* @author hh
* @version 1.0
* @date 2023/4/19 14:22
*/
public class TransExe {
public static void main(String[] args) {
char c1='c';
// 先求得A-a之间的差值o
int o1='a'-'A';
char cc=(char) (c1-o1);
System.out.println(cc);
//
int o='A'-'a';
char c=(char)(c1+o);
//--
// int c=(int)c1;
// c1 =(char)(c-32);
// int o='A'-'a';
// char c=(char)(c1+o);
System.out.println(c);//C
}
}