c语言不同数据类型间的混合运算,C语言中不同数据类型的混合运算

2021-01-12 18:09:50 字数 1645 阅读 4323

1楼:匿名用户

c语言里 不同数据类型间的混合运算会强制转换的```如6.0/5``结果必然向float型转换```比如char short型参与运算都是先转为int型`float转为double型

int double混合运算时转为double型都是向着占用较大的方向转换``使适用范围也更大`````书上应该说的比较详细了 `呵呵`

c语言中不同数据类型的混合运算

2楼:匿名用户

再回来说下,你可以这样进行检测,看隐式转换的问题还是溢出的问题:

typedef unsigned long long uint64;//最新的编译器都支持这种用法吧,总之你找个能表示64位的longlong就行了.

//uint

cout << (uint64)iu + (uint)i << endl;

这里先将i转换成uint型,此时未溢出,然后加上转换uint64(iu)的值,再将其提升为uint64,因为原来已经为uint型,所以提升为uint64时值不再改变,最后结果超出了uint的范围,如果你再对最终结果进行(uint),得到的答案你应该知道了.

------------------

溢出问题.

i=-8,转化为uint型后,为2^32-8,再加上个uint(10),结果为:

2^32+2,溢出后,结果为2.

你只考虑到一个很大的正数,却没有考虑到uint范围的问题!

c语言中不同类型的数据能否进行混合运算?如果能,以何种规则进行?

3楼:小葱爱石头

可以,强制复转换就行,制int('a')就将

baichar 型转换成int型,还有就是可以利用du一些函zhi

数进行转换,如itoa()将daoint型转换成char型,atof()将char型转换成float型等等,很多这种函数,可以上网查一下

关于c语言中各类型数据间的混合运算

4楼:匿名用户

两种不同类型的数运算的时候,根据包容性,将低级范围的转换成高范围的,将小的转换为大的。这样才能保证结果更正确。比如将单精度转换成双精度,将short转换为long等。

所以,结果是双精度的。如果结果保存到单精度的变量,将会有一个warning的编译警告。

5楼:匿名用户

这个问题其实是基础问题。 两个单精度运算的话,系统部会转换成双精度数据再进行运算。而是直接进行运算。

得出的数据结果是单精度。 如果是一单一双的话,就会报错。 如果是2个双精度的话,结果是双精度

6楼:匿名用户

楼主记住一个规则就行了:在计算的时候,系统把所有的数据,转化成本表达式中精度最高的类型。

7楼:匿名用户

不会转化,如果是一单一双系统会自动产生一个双精度的结果

8楼:淡振梅翟培

intc;c的输出类型就是整型.没有其他

如果你想把这弄成double那就

double

c;就行了

顺便说下

你少了库函数

#include

"stdio.h"

C语言中不同数据类型的数据在运算时采用的规则有哪些

1楼 匿名用户 不同数据类型之bai 间的转换 有du2种方式 隐式转换和显zhi式转换dao。 隐式转换指的是默 专认做的一些转换式,比如属整形和实型做混合运算 这里我说的运算是合法的运算,不会是取余这样对操作数有数据类型要求的运算 ,得到的结果是自动由精度低的或占位数低的数据类型向高的数据类型做...

c语言中可以进行位运算的数据类型有什么

1楼 匿名用户 float 和double不可以 剩下的几个都行 2楼 李 只能用于整型操作数,即char short int long类型 c语言位运算有什么作用 3楼 逍遙侠 可以用位运算做文件加密,比如一个文档,让其中的内容位运算,再打开就会显示一堆乱码,除非按特定的位运算变回来 c语言逻辑运...

C语言中数据类型转换的方式有几种

1楼 听不清啊 c语言中数据类型转换的方式有两种 自动类型转换和强制类型转换。 简述c语言中数据类型转换有哪几种方法 2楼 匿名用户 c中好像只有强转吧 类型名 待转数据 3楼 匿名用户 强制转换 自动提升 4楼 匿名用户 data type casting 想怎么转就怎么转,没有几种之说,不要死学...