类型转换
初看视频看老师提到 隐式转换 和 显示转换,
没有看书后,也不知道是什么意思,什么是隐式的,什么是显示呢.
后来看了一遍基础语法,大致是了解了,
所谓隐式,就是不需要我们来操作,和多余的"修饰" 就可以直接进行 类型转换, intA = byteB;
所谓显示转换 就是我们进行强制的操作进行转换 byteB =(byte)intA 强制转换 可以通过编译但"可能"会造成精度损失;
我们把2222这个int型 显示转换成 byte 型,
我们平常的想法也许会有: 因为 byte 范围是0-255之间的整数,把2222转成byte损失精度就损失吧,去掉一位变成222就在byte的范围内了,可事实结果是真是这样吗?
我用编译器试了一下, 其结果 是174.我的第一个想法是编译器坏了?不能啊! 持怀疑的态度是很好.其实看书才知道是二进制位的丢失.
2222的二进制为100010101110
byte中的最大值11111111 补零进行对齐
100010101110 //2222 int
000011111111 //255 byte
存不下了,前面的1000没了,变成了10101110 的十进制 值为174
我用十进制 转二进制 Convert.ToString(2222,2)
我用二进制 转 十进制 Convert.ToInt32(“10101110”,2)
关于隐式转换,就是大的往小的转 是隐的
关于显示转换,就是转不了,就得强制一下
一般几个语法 (int),还有Convert.ToInt32(),还有转成字符串.ToString()的 ,如写的不全,等学懂后,再详细补充。
签名:记录一下所学,理解。
既温故知新,
又有益后辈,
如有错误请帮助纠正和知识扩展,
希望看客见证我的成长。