C# —— 类型转换

类型转换就是不同变量数据类型之间进行互相转换
隐式转换 : 默认是C#中安全的进行数据转换的方式 一般不会造成数据丢失

相同数据类型之间的隐式转换
有符号 long -> int ->short ->sbyte

long l = 1;
int i = 2;
short s = 3;
sbyte sb = 4;
// 大范围可以装小范围的
l = i;
l = s;
l = sb;
// 无法将long 类型 隐式转换为 int
// 小范围无法装大范围
// i = l;
i = s;
// l可以输出 说明隐式转换成功
Console.WriteLine(l);

无符号 ulong -> uint -> ushort -> byte

ulong ul = 1;
uint ui = 1;
ushort us = 1;
byte b = 1;

无符号的隐式转换 同有符号一样 大范围装小范围 小范围无法装大范围 

 ul = ui;

 浮点数 decimal  double -> float

float f1 = 0.2f;
double d = 0.5;
decimal d1 = 0.8m;

不同变量类型隐式转换

long l2 = 5;
int i2  = 6;
short s2 = 7;
sbyte sb2 = 8;
// 无符号的
ulong ul2 = 10;
uint ui2 = 11;
ushort us2 = 12;
byte b3 = 13;

有符号装无符号
            // 有符号可以装无符号的 但是范围一定是要涵盖的 存在隐式转换

l2 = ui2;
l2 = us2;
l2 = b3; 

无符号装有符号 
            // 无符号的变量 不能隐式转换为有符号的
            // ui2 = sb2;

            // 浮点数 和 有无符号整数之间的转换
            // double -> float -> 所有整数类型(无符号 有符号)

float f3 = 0.5f;
double d5 = 0.6;
decimal dl3 = 0.8m; 

 浮点数 是可以装载任何类型整数的

f3 = l2;
f3 = i2;
f3 = sb2;
f3 = s2;
f3 = ul2;

 特殊类型之间隐式转换

bool类型没有办法和其他类型进行隐式转换 

bool t3 = true;
char c3 = 'A';
string str2 = "sdajsan";
string str3 = "123";

 char类型 可以隐式转换为整数类型 浮点型
            对应的数字是ASCII码表 
            计算机中 数据的存储是二进制存储的 字符 中文 英文 标点符号 在计算机中就是一个二进制的数字 一个字符 对应一个数字  ASCII码就是对应关系

l2 = c3;
ul2 = c3;
Console.WriteLine(l2);
Console.WriteLine(ul2);

 总结

高精度(大范围) 可以装 低精度(小范围)
            // double -> float -> 整数(无符号 有符号) -> char
            // decimal -> 整数(无符号 有符号) -> char
            // string bool 是不参与隐式转换规则的
            // 有符号不可以隐式转换为无符号的
            // 无符号可以隐式转换为在涵盖范围内的有符号的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值