欢迎来到天天文库
浏览记录
ID:57013785
大小:50.50 KB
页数:18页
时间:2020-07-26
《变量的更多内容_类型转换课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章变量的更多内容5.1类型转换类型转换类型转换的概念数据在计算机中是以二进制位的形式表示的,程序设计语言可根据数据的类型来对这些二进制位进行解释,进而控制数据的显示和运算,同一串二进制位,不同的数据类型对它有不同的解释。就比如说,同一串二进制位,在char类型中表示字符‘A’,而在ushort中却表示数值65(字符串‘A’的ASCII码值)。类型转换类型转换是指将变量从一种类型转换成另一种类型。在C#中,类型转换有两种形式:隐式转换:当从类型A到类型B的转换,不会造成数据的丢失时,将由编译器自动
2、进行隐式类型的转换。显式转换:当从类型A到类型B的转换,可能造成使数据的丢失时,就必需进行显式类型转换。类型转换隐式类型转换隐式类型转换是由编译器自动完成的,不需要做任何工作,考虑如下代码:当变量var2所能表示的所有值,都在变量var1的取值范围内,将由编译器自动进行隐式类型的转换。var1=var2;类型转换隐式类型转换示例:char和ushort的值是可以互换的,它们都能表示65536种不同值,所以将由编译器自动进行隐式类型的转换,考虑如下代码:charsourceVar=‘a’usho
3、rtdestinationVar=sourceVar;Console.WriteLine(“sourceVarval:{0}”,sourceVar);Console.WriteLine(“destinationVarval:{0}”,destinationVar);sourceVarval:adestinationVarval:97类型转换隐式类型转换:隐式类型转换的规则:任何类型A,只要其取值范围完全包含在类型B的取值范围内,就可进行类型A到类型B的隐式类型转换。byteisByte=65;cha
4、risChar=isByte;ushortisUShort=isChar;intisInt=isUShort;longisLong=isInt;floatisFloat=isLong;doubleisDouble=isFloat;类型转换显式类型转换当需要进行的转换可能会造成数据的丢失,也就是说当类型B所能表示的值范围超出了类型B所能表示值的范围,就无法进行隐式类型的转换,这时必须手工进行显示的类型转换,否则,将不能通过编译,如:intisInt=16;byteisByte=isInt;编译器将给出
5、错误提示:无法将类型“long”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?)类型转换显式类型转换显式类型转换的语法:var1=(目标类型)var2;bytedestinationVar;shortsourceVar=7;destinationVar=(byte)sourceVar;Console.WriteLine(“sourceVarval:{0}”,sourceVar);Console.WriteLine(“destinationVarval:{0}”,destinationVa
6、r);类型转换显式类型转换示例比较转换与不转换的结果:staticvoidMain(string[]args){intnumA=1,numB=2;floatresult1,result2;result1=numA/numB;result2=((float)numA)/((float)numB);Console.WriteLine(“Notexplicitconvertresultis:{0}”,result1);Console.WriteLine(“Explicitconvertedresultis
7、:{0}”,result2);}Notexplicitconvertresultis:0Explicitconvertedresultis:0.5类型转换显式类型转换进行显式类型转换时,当被转换变量的值大于目标类型所能表示值的范围时,将会造成数据溢出:staticvoidMain(string[]args){shortsourceVar=281;bytedestinationVar=(byte)sourceVar;Console.WriteLine(“Number281inbyteis:{0}”,d
8、estinationVar);}Number281inbyteis:25类型转换显式类型转换short型数据281在内存中的二进制表示为0000000100011001而byte只能存储8位二进制数,故只能保存最低8位,即00011001所以,281在byte型数据中表示为25。类型转换显式类型转换为了防止溢出现象的发生,在C#中加入checked和unchecked两个运算符。checked-检查运算的结果,如果运算溢出,将会由CLR抛出一个OverflowExce
此文档下载收益归作者所有