标签:
一、自动类型转换(隐式类型转换):
将1个byte类型的变量中的值赋值给1个int类型的变量,为什么不报错,数据类型明显不同?
a、byte类型的变量和int类型的变量都是用来存储整型的数据。
b、无论byte类型的变量中的值是多少,都可以将其放倒int类型的变量中去,不会出任何问题。
在数据类型兼容的情况下,我们可以将一个小范围的变量的值直接赋值给1个大范围的类型的变量。这样做是绝对不会有问题的。
a、因为他们之间相互兼容
b、小范围变量的值无论是多少都可以直接放到大范围的变量中。
因为不会有任何问题,所有直接赋值就可以了,C#编译器自动的帮助我们完成转换。
所有的数值类型和char类型之间是互相兼容的。可以直接将1个char类型的数据赋值给1个int类型的变量,那么这个int类型的变量的值就是这个char类型的数据对应的ASCII码。(char类型的数据对应的ASCII码是1个int类型的数据。)
满足自动类型转换的条件:
a、数据类型兼容(所有的数值类型和char类型之间相互兼容),特别强调字符串和数值类型以及char类型不兼容。
b、目标变量的范围要大于原变量
二、强制类型转换
在强制转换的时候,一定要保证大范围变量中的值要在小范围的变量中。
将浮点型强制转换为整型,会将小数部分截取掉,不会做四舍五入。
强制类型转换的首要前提是:
a、类型兼容
b、大范围赋值给小范围
可以直接把char类型的数据赋值给int类型的变量。
但是不能直接把int类型的数据赋值给char类型的变量,如果一定要赋值,那么必须使用强制转换语法。结果就是以这个类型的数为ASCII码所对应的字符。
三、关于char类型
a、每1个char类型的数据都有1个对应的ASCII码,这些ASCII是1个int类型的数。
B、char类型不是int类型,只是这个数据的ASCII码是1个int类型的。
标签:
原文地址:http://www.cnblogs.com/huanhuan0624/p/4700688.html