目录
一、隐式转换 (基本就是赋好值后 直接 = 没有格式)
第一种:相同大类型之间的转换
(有符号的整形变量 无符号的整形变量 浮点数 特殊类型 )四大类
通用基本规则: 可以用大范围的 装小范围的 类型(隐式转换)
不能用小范围的类型去装大范围的类型。
例如:
long 和 ulong 就是整形变量里范围最大的,(u)long 无法转换为 (u)short、(u)int、(s)byte
有 int i =1; long L = i; 但没有 long L=1; int i = L;(X)
需要注意的:
1.浮点数中,范围最大的decimal这个类型 没有办法用隐式转换的形式 去存储 double和float
2.string 、bool 不存在 隐式转换
第二种:不同大类型之间的转换
1.无符号和有符号之间
无符号装有符号 装不了:有符号的变量 无法隐式转换为 无符号的 正负范围不一样
有符号装无符号 可以装:
无符号的可以隐式转换为有符号的 前提是 范围能被有符号的包括进去
//有符号的变量 可能会超过 无符号变量的范围 (正负)
2.浮点数和整数(有、无符号)之间
//浮点数 是可以装载任何类型的 整数的
//decimal无法隐式转换 float或者double,但能装整形
//整数没有办法装浮点数 没法装小数
3.特殊类型和其他类型之间
//bool无法隐式转换为其他类型。
//其他类型的变量无法转化为char
//char可以隐式的转换为其他类型
//但其实是char转为了int类型后又隐式的转换为其他可转换的类型
//所以对于short、byte等存储范围小于int的类型
//char无法隐式转换过去