字符型—→整型—→长整型—→浮点型—→单精度型→双精度型
就是当字符型和整型在一起运算时,结果为整型,如果整型和浮点型在一起运算,所得的结果就是浮点型,如果有双精度型参与运算,那么答案就是双精度型了。
强制转换是这样的,在类型说明符的两边加上括号,就把后面的变量转换成所要的类型了。
有两种转换方式:1.强制转换:
(方法为:
类型A的变量
=
(
类型A
)类型B的变量)
举例:
float转double:
float
a=2.0
double
b
=
(double)a
char转unsinged:
char
a='c'
unsigned
char
b
=
(unsigned
char)a
short转unsigned:
short
a=-20
unsigned
short
b
=
(unsigned
short)a
2.由系统隐含转换:
也就是我们所说赋值操作.
但是这种操作很多时候会给出错误信息.
有的也不能成功.如指针与非指针类的转换.如果要进行这类转换建议用第一种方式,
高版本的可以用第一种的变形方式.
float转成double:
float
a=2.0double
b=a
char转unsinged:
char
a='c'
unsigned
char
b=a
short转unsigned:
short
a=-20
unsigned
short
b=a
3.第一种方式的变形(只有高版本的才可以用,否则会给出错误信息)
方法为:
类型A的变量
=
类型A(类型B的变量)举例:
float转double:
float
a=2.0
double
b
=
double(a)
char转unsinged:
char
a='c'
unsigned
char
b
=
unsigned
char(a)
short转unsigned:
short
a=-20
unsigned
short
b
=
unsigned
short(a)
1.将一种类型的数据赋值给另外一种类型的变量时就会发生自动类型转换,例如: floatf=1501 150 是 int 类型的数据,需要先转换为 float 类型才能赋值给变量 f。再如: intn=f1...2.在不同类型的混合运算中,编译器也会自动地转换数据类型,将参与运算的所有数据先转换为同一种类型,然后再进行计算。转换的规则如下: 转换按数据长度增加的方向进行,以保证数值不失真,或者精度不降低。