//隐式转换是数据类型转换的一种方式
//隐式转换 就是小类型转换为大类型
//类型大小判断可以通过包含关系来区分
//类型大小判断也可以通过父子关系
//有符号整形
//long > int > short > sbyte
sbyte sb = -10; //-2^7--->2^7-1
short sh = sb;//-2^15--->2^15-1
int i = sh;//-2^31--->2^31-1
long l = i;//-2^63--->2^63-1
//无符号整形
//ulong > uint > ushort > byte
byte b = 10;//0----2^8-1
ushort us = b;//0----2^16-1
uint ui = us;//0----2^31-1
ulong ul = ui;//0----2^64-1
//有符号类型不能隐式转换为无符号类型 // 因为无符号类型不包含负数 而有符号包含负数
//有符号和无符号之间的关系
//short > byte
//int > ushort
//long > uint
//浮点型
//double > float
float f = 0.12f; //占4个字节 有效数字7-8位
double d = f; //占8个字节有效数字15-18位
//十进制小数 float 和 doudle 无法隐式转换为 decimal 类型
//decimal 是十进制小数 而float 和 double 使用二进制形式 所以本质是上有不同 不能相互转化
decimal de = 123m;//占16个字节 有效数字位数 28 位
//浮点型和整形之间的相互转化
//任何的浮点型都大于任意的整形
//十进制小数也大于任意的整形
f = l;
d = ul;
de = l;
//bool 类型无法隐式转换为其他数据类型
//char 字符型
char c = 'a';//存储的是字符的编码值 ascll 是一个无符号整形 存储的数据和无符号整形 ushort 的数据一样
//char 类型数据可以隐式转换为 ushort
us = c;
//字符串
//字符串无法隐式转换位其他类型 其他类型也无法隐式转换为字符串