数据类型转换_运算符

 

一,自动数据类型转换

1. 什么是数据类型转换?
    在一个变量定义的过程当中,等号左右两边数据类型不一致的情况下,出现数据类型转换,主要分为两种。

2. 类型转换的分类
    A. 自动类型转换(数据范围从小到大)
	B. 强制类型转换(数据范围从大到小)

3. 数据范围大小顺序:
    byte,short,char -> int -> long -> float -> double  【理解性记忆】

4. 自动类型转换的格式
    格式:
		数据类型   变量名称 = 数据值;  
	例如:
    	double dd = 3.66F;  //将 float 类型的数据,转换成为 double 类型的数据 
		long  num = 520;   //将 int 类型的数据,转换成为 long 类型的数据 

二,强制类型转换

1. 格式写法
	A. 格式:
		数据类型小的  变量名称 = (数据类型小的)数据值;
	B. 例如:
		float num1 = (float)3.14;  //将 double 类型转换成为 float 类型,浮点数默认是double,如果是float需要加F
		int num2 = (int)521L; //将 long 类型的521L数据转换成为int类型,long类型的数据后面需要加上L

2. 注意事项
	"强制类型转换,可能损失精度" //可能的含义: 有可能有精度损失,有可能没有精度损失。
	例如: 
		int num3 = (int)521L;  //这里就没有精度损失,因为int类型当中,可以存放 521 数据。
		int num4 = (int)3.99F; //这里就会出现精度损失,结果是3.相比之前的精度就变化了。

三,常量优先计算原则

1. 三种类型的数据参与运算的情况
	byte short char 参与 数学运算(加减乘除等)的过程当中,会自动提升为 int 类型,进行计算。(前提是变量)
	
2. 例如:
		//[1]变量+变量
		byte num1 = 3;
		byte num2 = 4;
		byte result1 = (byte)(num1+num2);  //自动提升 int
		System.out.println(result1);
		//--------------------------------
		//[2]变量+常量
		byte num3 = 5;
		byte result2 = (byte)(num3 + 10); //自动提升 int
		System.out.println(result2);
		//--------------------------------
		//[3]常量+常量
		byte result3 = 30+40; //不会报错,常量相加。
		System.out.println(result3);

3. 常量优先计算原则:
	如果是两个常量参与运算。先计算结果,再看数据类型。
	上面的 30+40 先加再看类型,加完之后,结果是 70, 70在 byte 范围之内,所以不会报错。
	注意.如果加完之后,超过了 byte 的范围,就会报错.需要强制类型转换了。

四,ASCII码表

1. ASCII码表的含义
    American Standard Code for Information Interchange 美国信息交换标准代码
    简单一点说: 就是二进制数据(十进制)和英文字母符号之间的对应关系
        '0'  ---> 数字 48
        'A' ---> 数字 65
        'a'  ---> 数字 9
    参考: 川哥笔记 chm --> B知识附录 --> ASCII码表
    
 2. 万国码表 Unicode
     ASCII码表 是美国人使用的
     GBK 码表  是国标,中国使用的
     ISO-8859-1 欧洲人使用的码表
     UTF-8 码表,统一了世界码表,称之为"万国码表"
        
 3. 简单记忆码表的方式: +0 记忆法
    //加上0的方式
    char zhifu1 = '我';
    char zhifu2 = '爱';
    char zhifu3 = '你';
    System.out.println(zhifu1+0); //25105
    System.out.println(zhifu2+0); //29233
    System.out.println(zhifu3+0); //20320

五,算术运算符

1. 常见的算术运算符
	加、减、乘、除、取余(取模)

2. 加法的多种用法
	A. 数字是 直接做加法运算
	B. 字符是 转换成为int类型做加法运算
	C. 字符串是 连接在一起

3. 加法的多种用法
	A. 数字是 直接做加法运算
	B. 字符是 转换成为int类型做加法运算
	C. 字符串是 连接在一起

4. 自增和自减操作
	A. 符号问题
		自增: ++   例如: num++;  或者  ++num;  //含义:在原始数据的基础上,加上1
        自减: --   例如: num--;  获取  --num;  //含义:在原始数据的基础上,减去1
     B.混合使用的情况(了解即可,后期使用不多)
     	口诀:  "前加,先加后用;后加,先用后加"

六,赋值运算符

1. 赋值运算符的分类
	A. 基本的赋值运算符
		=
	B. 复合的赋值运算符
		+=
		-=
		*=
		/=
		%=

2. 注意事项
	复合的赋值运算符当中,隐含了强制类型转换。
	题目: short s = 1;  s+=1; 和 short s=1; s=s+1; 请问,哪一个会报错,为什么?

七,比较运算符

1. 常见的比较运算符
	>  大于
	>= 大于等于
	<  小于
	<= 小于等于
	== 等等于
	!= 不等于

2. 注意事项
    A. 比较运算符的结果是 boolean 类型,成立是 true 不成立是 false
    B. 千万不要把 == 写成 = ,双等是比较运算符,单等是赋值运算符。

八,逻辑运算符

1. 常见的逻辑运算符
	A.与(并且)   &&    "有false则false"
	B.或(或者)   ||	"有true则true"
	C.非(取反)   ! 	"非true则false,非false则true"

2. 注意事项
	A. 逻辑运算符的结果是 boolean 类型
	B. 短路效果: 如果左边可以确定结果,右边不执行。

九,三元运算符

1. 格式:
	数据类型  变量名称 = 表达式 ? 数值1:数值2;  //例如:  int RR = x>y?a:b;

3. 注意事项
	A. 数值1和数值2的数据类型必须统一,和等号左边的数据类型要一致。
	B. 三元运算符,必须使用。要么打印输出,要么赋值,不能单独去写。//不能写: x>y?a:b; 错误写法!
发布了14 篇原创文章 · 获赞 0 · 访问量 200

猜你喜欢

转载自blog.csdn.net/qq_45068627/article/details/103789425