c语言函数转数据类型 c语言的数值转换

关于C语言数据类型转换的一个小问题 , 很简单哦?。?/h2>数据类型转换有两种:
a
强制类型转换 , 通过函数实现,

char
c='a';
int
i;
i=int(a);
//
强制转换,但不会改变a本身的类型 。
b
自动类型转换,通过编译器自动实现,
不同类型的数据在一个表达式中会自动转换为最长的类型:
如你定义的char
a;
int
b;
float
c;
double
d;
计算a*b+c-d时 , 
按计算顺序说明类型转换:
1
a*b
//
char类型的a
转换为int类型的值,
再和int
类型的b
相乘
2
a*b+c
//
int
类型的a*b转换为float类型值,再和float类型的c相加
3
a*b+c-d
//
float类型的(a*b+c)转换为double类型的值,再和double类型的d相减
不考虑过程,
最终表达式的值为最长类型(这里是double)的值
c语言 所有类型转换函数在赋值表达式中,当左右两边数据类型不同时,右边的数据类型应变为左值(变量)的数据类型 , 同时编译器也能自动进行类型转换,将低字节数据类型转换为高字节类型,例如:int转换为long
int,当不同的数据类型相互赋值时还有精度缺失问题,例如:将int赋给char,只是将低八位(一个字节)赋给它 , 希望可以帮到你!
请问C语言中如何将int转换为float把int
a;转换为float类型有两种办法:
1、手动强制转换:
float
b
=
(float)a;
//强制转换
2、自动转换c语言函数转数据类型,基本上所有语言都是会在混合运算时自动强转为统一数据类型c语言函数转数据类型,统一为最高精度c语言函数转数据类型的,所以
a*1.0

a/1.0就可以:
float
b
=
a*1.0;
//自动转换
C语言数据类型的转换让我来说说这个问题吧 。
一.自动转换
自动转换遵循以下规则:
1) 若参与运算量的类型不同,则先转换成同一类型,然后进行运算 。
2) 转换按数据长度增加的方向进行,以保证精度不降低 。如int型和long型运算时,先把int量转成long型后再进行运算 。
a.若两种类型的字节数不同,转换成字节数高的类型
b.若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型
3)所有的浮点运算都是以双精度进行的 , 即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算 。
4)char型和short型参与运算时,必须先转换成int型 。
5)在赋值运算中 , 赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型 。如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入 。
二.隐式转换
隐式类型转换分三种,即算术转换、赋值转换和输出转换 。
1.算术转换
进行算术运算(加、减、乘、除、取余以及符号运算)时,不同类型数招必须转换成同一类型的数据才能运算 , 算术转换原则为:
在进行运算时,以表达式中最长类型为主,将其他类型位据均转换成该类型 , 如:
(1)若运算数中有double型或float型,则其他类型数据均转换成double类型进行运算 。
(2)若运算数中最长的类型为long型.则其他类型数均转换成long型数 。
(3)若运算数中最长类型为int型,则char型也转换成int型进行运算 。算术转换是在运算过程中自动完成的 。

推荐阅读