-
相同位宽的整型数据进行强制转换时机器码保持不变
-
小字长转大字长时
-
大字长转小字长时直接将机器码截短
-
float→double:由于double型数据的尾数、阶码宽度都比float型大,因此其表示范围更大、精度更高,转换后的 double 型数据与原 float 型数据完全相等。
-
double→float:大数转换时可能发生溢出,高精度数转换时会发生舍入。
-
float/double→int:小数部分会截断,大数转换时可能会溢出。
-
int→float:两种类型都是 32 位,所表示的状态数是一样的,在数轴上表示的数据并不完全重叠,float 型用其中一部分状态表示了更大的整数和小数;int 型中一些比较大的整数无法用float型精确表示。浮点数尾数连隐藏位在内一共24位,当int型数据的24~31位数据非0时,无法精确转换成 24 位浮点数的尾数,此时会发生精度溢出,需要进行舍入处理。
-
int→double:浮点数尾数字段为 53 位,可以精确表示所有 32 位整数。
-
实例
-
📜考研真题