类型转换

初看视频看老师提到 隐式转换 和 显示转换,

没有看书后,也不知道是什么意思,什么是隐式的,什么是显示呢.

后来看了一遍基础语法,大致是了解了,

所谓隐式,就是不需要我们来操作,和多余的"修饰" 就可以直接进行 类型转换, 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()的 ,如写的不全,等学懂后,再详细补充。

posted @ 2013-11-17 15:17  收藏家  阅读(234)  评论(0编辑  收藏  举报