作业帮 > 数学 > 作业

(1/2)+'a'/2+(float)(2/5)为什么等于49.0

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:数学作业 时间:2024/07/06 11:31:00
(1/2)+'a'/2+(float)(2/5)为什么等于49.0
(1/2)+'a'/2+(float)(2/5)为什么等于49.0
逐项解释如下:
首先要记得C语言中两个整型数相除,结果仍是一个整型数.如13/5=2.于是:
!(1/2)=!(0)=-1
'a'/2=97/2=48
(float)(2/5)=(float)(2)=2.0
当整数与实数相加时,结果是一个实数.
所以:-1+48+2.0=49.0
再问: !(0)=-1和(float)(2/5)=(float)(2)这两个地方不是很懂
再答: 0的二进制形式是00000000 00000000
!0就是对它按位取反,就是11111111 11111111,而在二进制补码中这就是-1(请不要说这里不懂,否则请自己另行查阅二进制补码的知识)
(2/5)=2,这总知道的吧!
那么(float)2就是2.0了。
再问: 嗷嗷谢谢