计算机中数据类型的转换(隐式)

计算机中数据类型的转换分为隐式转换和显示转换。这里先说说隐式转换。

隐式转换不需要做任何工作,例如var1=var2,如果var2的类型可以隐式转换为var1的类型,这个赋值语句就蕴含一个隐式转换。

这里有一个隐式转换的规则:任何类型A,只要其取值范围完全包含在类型B的取值范围内,就可以隐式转换为类型B。如果不符合这个规则也仍希望转换,则可以用显示转换实现。

这里便涉及一个取值范围的问题。我们首先引入数据类型,如下表:

有符号的数据用二进制表示时,首位字符为符号位,0代表正,1代表负。

他们的取值范围对应的为:

bool和string没有隐式转换数值类型才有隐式转换,而char存储的是数值,所以char以可以当做一个数值类型。相应的知道,byte可以隐式的转换为(short,ushort,int,unit,long,ulong,float,double,decimal),为什么byte不能显示转换为char没有想明白~~~。类似的转换可以自己依照规则得来。这里还需要注意的一点是,虽然decimal的位数比double多,但是因为double的精度低,使其表示的范围大,而decimal则用了较多的位来表示精度,其范围相应的变小了。代码中时无法将double和decimal之间相互做隐式转换的,这点要牢记(我也没搞懂为啥~~)

下节介绍显示转换。

附带:

关于原码反码,补码的概念,不知道看此篇文章的你是否熟悉。正数的原码、反码、补码都一样。关于负数,反码是将原码除符号位外所有位取反,补码是将其反码加1。

关于+0和-0的分别表示,统一用8位来作为例子演示:

可以看出只有用补码表示时,+0与-0是没有区别的。

 

转载于:https://www.cnblogs.com/huang1990/archive/2013/04/12/3016621.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值