整型数据和字符型数据的类型不同,它们之间能不能进行运算?

 我来答
芒亭晚堵婷
2020-01-08 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:35%
帮助的人:1017万
展开全部
整型、单精度型、双精度型数据可以混合运算。字符型数
据可以与整型通用,因此,整型、实型(包括单、双精度)、字符型数据间可以混合运算。例如:
10+'a'+1.5-8765.1234*'b'
是合法的。在进行运算时,不同类型的数据要先转换成同一类型,
然后进行运算。转换的规则按图所示
double

float

long

unsigned

int

char,
short
图中横向向左的箭头表示必定的转换,如字符数据必定先转换为整数,
short型转为int型,float型数据在运算时一律转换成双精度型,以提高运算精度(即使是两个float型数
据在加化成double型,然后再相加)。
纵向的箭头表示当运算对象为不同类型时转换的方向。例如int型与doub1e型
数据进行运算,先将int型的数据转换成图double型,然后在两个同类型(double型)数据进行运算,
结果为double型。注意箭头方向只表示数据类型级别的高低,由低向高转换,不要理解为int型先
转成unsigned型,再转成1ong型,再转成double型。如果一个Int型数据与一个double型数据运算,
是直接将int型转成double型。同理,一个int型与一个Long型数据运算,先将int型转换成1ong型。
换言之,如果有一个数据是float型或double型,则另一数据要先转
为double型,结果为double型。如果二个数据中最高级别为1ong型,则另一数据先转为1ong型,结果
为1ong型。其它依此类推。假设已指定i为整型变量,f为float变量,d为double型变量,e为1ong型,有
下面式子:
10+'a'+i*f-d/e
运算次序为:①进行10+'a'的运算,先将'a'转换
成整数97,运算结果为107。②进行i*f的运算。先将i与f都转成double型,运算结果为dOuble型。
③整数107与i*f的积相加。先将整数107转换成双精度数(小数点后加若干个0,即107.000…00),
结果为double型。④将变量e化成double型,d/e结果为double型。⑤将10十'a'+i*f的结果
与"d/e结果为double型。
上述的类型转换是由系统自动进行的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式