类型转换

Posted ckhomepage

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类型转换相关的知识,希望对你有一定的参考价值。

自动类型转换

低 ---------------------------------------------> 高
byte,short,char-> int -> long -> float -> double

强制类型转换

高----------------------------------------------> 低

double->float->long->int->byte,short,int

需要特别注意的是虽然long占8字节,float占4字节,但是long到float无需强制转换。

这是因为float类型是按照IEEE浮点标准进行存储的:

第1位,符号位,即S

接下来8位,指数域,即E。

剩下23位,小数域,即M,取值范围为[1 ,2 ) 或[0 , 1)

然后按照公式计算: V=(-1)^s * M * 2^E

也就是说浮点数在内存中的32位不是简单地转换为十进制,而是通过公式计算得来,虽然float型数据只有4个字节,但浮点数表示范围要比长整型的范围要大。

以上是关于类型转换的主要内容,如果未能解决你的问题,请参考以下文章

C++ 介绍⁽⁴⁾|C++ 类型转换

JS强制类型转换,隐式类型转换, == 和===的区别

类型转换

C# 类型转换

C++ 数据类型转换

类型转换和类型断言