char

qq_26036375 2015-03-27 09:44:27
#include<stdio.h>
int main(void)
{
signed char ch1, ch2;//求解释输入36
signed int n1, n2, sum;
ch1 = getchar();//3被ch1吸收6被ch2吸收了
ch2 = getchar();
n1 = ch1 - '10';// 这里减负数怎么不行啊 why
printf("%d\n", n1);// why
n2 = ch2 - '0';
printf("%d\n", n2);
sum = n1 + n2;
printf("sum = %d\n",sum);
return 0;
}
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_26036375 2015-03-27
  • 打赏
  • 举报
回复
、。。。、。。、、。。、O(∩_∩)O 谢谢
苏叔叔 2015-03-27
  • 打赏
  • 举报
回复
2楼正解:'10' == 49 * 256 + 48 == 12592
dooX8086 2015-03-27
  • 打赏
  • 举报
回复
- -!!! 现在的小朋友是不是象力越来越丰富了... // ---------------------------------------------------------- '10' 不等 10 对于直接那 'xxxx' 多字节符来作运算,编译器会把内存内容做作一个int来处理 如 '10', 即两个字节 '1' '0' , '1' 的 ascii 码为49 '0'为48,那么 '10' == 49 * 256 + 48 == 12592 ch1 == '3' == 51 (ascii 码) n1 = ch1 - '10' 即 51 - 12592 == -12541 .... ... // ------------------------------------------------------- 当然不是你想要的结果啦..
jiht594 2015-03-27
  • 打赏
  • 举报
回复
n1 = ch1 - '\10'; n1 = ch1 - 10; n1 = ch1 - 0x10; n1 = ch1 - 010;

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧