永发信息网

#include<stdio.h> void main() { int x=20; printf("%d\n",~x); } 答案是-21,我想知道为什么?

答案:2  悬赏:0  手机版
解决时间 2021-12-26 04:29
  • 提问者网友:不要迷恋哥
  • 2021-12-25 21:19
#include<stdio.h> void main() { int x=20; printf("%d\n",~x); } 答案是-21,我想知道为什么?
最佳答案
  • 五星知识达人网友:话散在刀尖上
  • 2021-12-25 22:03
~ 是二进制反码或按位取反的符号,要对一个二进制补码取相反数,最简单的方法是反转每一位,(将0变为1,将1变为0),然后加1,要彻底明白最好看下位操作或位运算的二进制
全部回答
  • 1楼网友:从此江山别
  • 2021-12-25 22:28
你x和y都定义成了int,所以x=1.2和x=1是一样的,小数部分会直接被截断,因此执行x=1.2后x的值是1,而不是1.2,然后1+3.8=4.8,除以5后个位数是0,所以结果y为0.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯