C语言·混合运算

混合运算

缺省事实1
一个十进制小数换算成二进制时可能会变为无限小数,为了不损失精度,计算机默认将float常量转换为double常量处理。

缺省事实2
对于整型常量,计算机会根据其大小,默认作为对应的有符号型整数来处理。

例子
混合运算时,系统会自动转换成同一类型计算。(在编译时已完成)

在这里插入图片描述
横向必转,纵向从下到上,本来就是同类型数据之间无需转换。

【注意:

  1. +. -. *. /运算的两个数中有一个数为float或double型,结果是double型,因为系统将所有float型数据都先转换为double型,然后进行运算;
  2. 若int型与float或double型数据进行运算,先将int型和float型转换为double型,然后进行运算,结果为double型;
  3. Char型与int型数据进行运算,就是把字符的ASCII码与整型数据进行运算;
    如:12+‘A’=12+65=77
    ————————————————
    版权声明:本文为CSDN博主「Fengjingdisan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/fengjingdisan/article/details/76358642

此段转载于博主Fengjingdisan

陷阱

错1
整数除整数答案也是整数,答案是0.
陷阱2
unsigned int - unsigned int =unsigned int

后缀

在这里插入图片描述
警告是因为机器把0.2当成double(8)来处理,把0.2放进float(4)里等于只有前六或七位是有效数字。

在这里插入图片描述
原本计算机按照double处理的,加了后缀后按照后缀的常量处理。(后缀尽量大写
在这里插入图片描述
限制0.2只能是float型常量,左右匹配,就不会出现警告。

在这里插入图片描述
不是等于0.0000是因为第一行的1.2是double型切断放进float型,第二行的1.2是double型,float-double和同类减同类等于零不一样,所以不是0.0000。

图片截取自中国慕课零基础学C语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值