c语言中整型和浮点型混合运算的结果是什么类型

作者&投稿:袁苇 (若有异议请与网页底部的电邮联系)
浮点型和整型相加,结果是什么类型~

以32位机为例,C语言中,基本数值型数据包括 :
char , unsigned char 占一个字节
short , unsigned short 占两个字节
int , unsigned int 占四个字节
long , unsigned long 占四个字节(64位编译系统下,占8个字节)
float 单精度浮点 占四个字节
double 双精度浮点 占八个字节
从上到下,数据可表示的范围越来越大,当以上不同种类型数据混合运算时,其运算结果会自动取大范围的数据类型做为结果的数据类型,如:
short + int = int int+float=float long+double=double
因此,整型和浮点型混合运算的结果是 浮点类型!

结果会是:单精度浮点型。
在c语言中,若参与运算量的类型不同,则先转换成同一类型,然后进行运算。转换按数据长度增加的方向进行,以保证精度不降低。如int型和float型运算时,先把int量转成float型后再进行运算。

c语言中整型和浮点型混合运算的结果为double型(双精度浮点类型)。

c语言中如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则:float(浮点型)转化为double(双精度浮点类型)、int(整型)转为unsigned(无符号整型)转为long(长整型)转为(双精度浮点类型)。

因此,c语言中整型和浮点型混合运算,只能是整型和浮点型同时强制转换为相同的double型(双精度浮点类型)。如两个float型数参加运算,虽然它们类型相同,但仍要先转成double型再进行运算,结果亦为double型。

扩展资料:

在C语言中,自动类型转换遵循以下规则:

1、若参与运算量的类型不同,则先转换成同一类型,然后进行运算。

2、转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。若两种类型的字节数不同,转换成字节数高的类型。若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型。

3、所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。

4、char型和short型参与运算时,必须先转换成int型。

5、在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。

参考资料来源:百度百科-C语言类型强制转换

参考资料来源:百度百科-自动类型转换



以32位机为例,C语言中,基本数值型数据包括 :
char , unsigned char 占一个字节
short , unsigned short 占两个字节
int , unsigned int 占四个字节
long , unsigned long 占四个字节(64位编译系统下,占8个字节)
float 单精度浮点 占四个字节
double 双精度浮点 占八个字节
从上到下,数据可表示的范围越来越大,当以上不同种类型数据混合运算时,其运算结果会自动取大范围的数据类型做为结果的数据类型,如:
short + int = int int+float=float long+double=double
因此,整型和浮点型混合运算的结果是 浮点类型!

如果不做强制转换的话结果就是double型的。int和float的混合运算是先把二者都转换成double型的,然后进行运算,最后得到的结果就是double的。

不做强制类型转换的就是double型。
例如
int i=3;
float j=4.5;
i+j就是double型。
float型数据在运算一律先转换成双精度型,就是double.以提高运算精度。
i要转换成double,因为它和double运算。
http://hi.baidu.com/huifeng00/blog/item/cc99d1d14a5e623f970a16b2.html
上面是我空间里面的,你可以参考下。

会是浮点型,因为类型转换总是按照数据长度增加的方向逐个运算符进行的,以保证精度不降低!!!


C语言中整型数可以和浮点数判断是否相等吗?
从原则上和语法上来说,C语言中整型数都是可以和浮点数判断是否相等的。但是在逻辑上很可能因为计算机的浮点误差而带来差错。计算机会自动把整数转换为浮点数后再进行判断。但是,要想比较两个浮点数是否相等,最好应该比较它们的差是否小于指定的范围。例如:所以,如果要正确判断,建议采用下面的方法:...

C语言中,整型,实型,字符型的区别是什么?
整型、实型和字符型的主要区别在于它们存储的数据类型和大小。整型用于存储整数值,实型用于存储浮点数值,字符型用于存储单个字符。整型和实型的数据类型和大小可以使用不同的关键字进行定义,字符型的数据类型默认为`char`。1. 整型:整型是一种有符号的数据类型,可以存储整数值。在C语言中,整型数据...

C语言中数据类型共有13种,我想问一下都那13种?
不知道你会不会嫌多 C语言中数据类型(整形,浮点型,字符型,无值型)整型(int)一、整型数说明 加上不同的修饰符, 整型数有以下几种类型; signed short int 有符号短整型数说明。简写为short或int, 字长为2字节共16位二进制数, 数的范围是-32768~32767。signed long int 有符号长整型数说明...

C语言int和float有什么差别?
int(整形) float(实型) chat(字符型) 这3个都是数据类型里的基本类型.int(整形)可以用十进制 八进制 十六进制表示 例如 1 2 33 256(十进制)float(实型)又成浮点型可以用十进制 和指数形式表示 例如 1. .2 1.11 .11 这些是实型必须带小数点.什么时候用那是看计算和...

char、 int、 float和double类型的数据在计算机存储空间中占用几位?
选A,解析:在16位PC机中,5种基本数据类型的存储空间长度的排列为:char型:1个字节 int型:2个字节 long int:4个字节或者4个字节-1位 float型:4个字节 double型:8个字节

c语言中如果整形变量x浮点型变量y双精度型变量z则表达式y产ry是什...
在C语言中,将整型变量和浮点型变量进行运算时,整型变量会自动转换为浮点型变量。但是,如果将一个浮点型变量和一个双精度型变量进行运算,则浮点型变量会自动转换为双精度型变量。因此,表达式y + z的结果是一个双精度型变量。由于类型提升的规则,当整型变量和双精度型变量进行运算时,整型变量会自动...

C语言整型字符型实型怎样区分。
整型常量即整常数,在C语言中整常数通常可以用以下三种形式表示:十进制整数、十六进制整数、八进制整数;整型变量基本型为int,分为六种:基本整型int、短整型short int、长整形long int和无符号基本整型unsigned int、无符号短整型unsigned short int、无符号长整形unsigned long int。实型即浮点型,分为...

c语言中的数据什么情况下用整型、单精度浮点型,双精度浮点型、字符型...
只有整数的情况用整形,如果可能有小数,但是位数不大或者对保留的小数要求不高就用单精度,比较大用或者对精度要求较高(6位以上)用双精度。如果可能有非数字类型的就用字符型。

什么是整型、实型、字符型?
整型就是整数,分为长整形和短整形,分别为32位长和16位长。表示的数的范围不同。若是无符号整型,就只能表示正整数了。有符号的整型,能表示正整数和负整数。实型实际就是浮点数,分为单精度浮点数和双精度浮点数,分别为32位长和64位长。表示的数的范围不同。字符型就是8位长整数,若是无符号...

c语言中整型和浮点型混合运算的结果是什么类型
结果会是:单精度浮点型。在c语言中,若参与运算量的类型不同,则先转换成同一类型,然后进行运算。转换按数据长度增加的方向进行,以保证精度不降低。如int型和float型运算时,先把int量转成float型后再进行运算。

长葛市17159295075: C语言中,假如i/m,如果i是整型,m是浮点型,那么结果是什么?如果i是浮点型,m是整型又会怎么样 -
桐很比立: 除号的两边,如果有一个是浮点型就是浮点型,都是整型除出来就是整型,如:5/2=25.0/2=2.55/2.0=2.5

长葛市17159295075: 关于C语言不同数据类型的数混合运算的问题 -
桐很比立: 你的 s=1/n是取整运算吧,1/2的整数部分当然是0了.而且你输出时浮点型数据,所以s结果是0.00000

长葛市17159295075: 用C输入一个数,既可以输入整型数又可以输入浮点数,要怎么写? -
桐很比立: void main() { float f; scanf("%f",&f); }这样输入的数可以是浮点数,也可以是整数

长葛市17159295075: 请问一道c语言的题目,答案是9.300000 请大家给解释一下 -
桐很比立: z = (a + b)/c+sqrt((double)y)*1.2/c+x = (1 + 4)/2+sqrt((double)9.0) * 1.2/2+5.5 = 5/2 + 3.0 * 1.2/2+5.5 = 2 + 3.6/2+5.5 = 2 + 1.8 + 5.5 = 9.3

长葛市17159295075: C语言中,一个整型对一个浮点型取余是怎样运算的? -
桐很比立: 不是,如果均为整型那所得结果也为整型,即使不能整除只取整数部份.如果除数或被除数中有一个为浮点型或DOUBLE型结果就会是精度更高的那类

长葛市17159295075: c语言运算有整型常量和单精度浮点型其结果是什么型? -
桐很比立: 结果会是:单精度浮点型. 在c语言中,若参与运算量的类型不同,则先转换成同一类型,然后进行运算.转换按数据长度增加的方向进行,以保证精度不降低.如int型和float型运算时,先把int量转成float型后再进行运算.

长葛市17159295075: C语言 中 结构相加 得到什么值? -
桐很比立: 这样不正确.结构体在算术运算中只能用其元素.如: struct s { int a; int b; char c; }; s s1,s2;为结构体型 s1.a+s2.a=?

长葛市17159295075: c语言 一个字符型的数据与一个float型的数据运算,结果是什么类型,为什么? -
桐很比立: 结果为float型.因为float型的精度要高于字符型数据,所以运算时先要将字符型转换成float型数据再进行运算,以保证由于数据进度不够而导致的计算误差.

长葛市17159295075: C语言 初学关于整型和浮点型相加得问题 -
桐很比立: 因为浮点数存的并不是精确的数字,如果感兴趣可以查一些文献.这也是你需要注意的问题,比如如果想比较一个浮点数是否大于1,不要写x > 1 ,最好写为x + 0.000001 > 1,消除误差.

长葛市17159295075: - 1.0 和 - 1在c语言中的区别.最好能举个实际预算的例子. -
桐很比立: -1.0是浮点型的,-1是整型的.本质不一样.具体的区别就像:-0.999是可能等于-1的,因为整型是四舍五入的.但-0.999不等于-1.0的,因为在与同为浮点型的两个数比较时不用转换的.但整型的数在C语言中是要转成浮点型来比较和计算的.所以-1可能转成接近-1的其他浮点数,比如-0.998什么的.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网