中易网

c语言问题 char c=127;c=c+100;printf(c=%d,c);我知道这里要求补码

答案:3  悬赏:80  
解决时间 2021-01-15 16:45
  • 提问者网友:人生佛魔见
  • 2021-01-14 19:26
c语言问题 char c=127;c=c+100;printf(c=%d,c);我知道这里要求补码
最佳答案
  • 二级知识专家网友:玩家
  • 2021-01-14 20:14
由于变量C是有符号数,而227超出了它的存储范围,你用%d(有符号数)输出时,它就被看成负数了(227的二进制是11100011),由于负数在内存是用补码存储的,所以输出时要转换成原码:最高位1表示负数,是符号位,转换时不动,其余的先转换成反码10011100,再转换成补码(反码加1)10011101,这就是负数的原码,它的最高位1表示负号,你看看,低五位的11101是不是十进制的29?追问你太棒了我去!!
全部回答
  • 1楼网友:神也偏爱
  • 2021-01-14 22:08
太专业、喷不动
  • 2楼网友:怀裏藏嬌
  • 2021-01-14 21:21
#include int count(char *s,char c);int main(void) {char str[100],c;gets(str);scanf(" %c",&c);printf("%d\n",count(str,c));return 0;}int count(char *s,char c){int cnt;for(cnt=0;*s;s++){if(*s==c){cnt++}}return cnt;}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息