字符转换问题
比如我输入
int a = 0;
a = a + '1'
打印出来的结果是a + 48(这个48是ascii码字符1的对应十进制)
还是a+1,结果是1?
中间存入的过程是怎样的。谢谢
将 '1' 转换为对应的 ASCII 码 49 再与整型数字 a 相加,最后 a 是 49。 zltzlt 发表于 2020-2-7 16:41
将 '1' 转换为对应的 ASCII 码 49 再与整型数字 a 相加,最后 a 是 49。
#include <stdio.h>
int main()
{
int ch;
int num = 0;
printf("请输入待转换的字符串:");
do
{
ch = getchar();
if (ch >= '0' && ch <= '9')
{
num = 10 * num + (ch - '0'); //那这一行是如何实现移位的呢,输入1后跳转的这里num为10*0+(1-48),结果为-47,输出num也为-47啊。
}
else
{
if (num)
{
break; // 如果已有数字,则退出循环
}
}
}
while (ch != '\n');
printf("结果是:%d\n", num);
return 0;
} 老牛来学习 发表于 2020-2-7 16:55
#include
int main()
应该是10*0+('1'-48),'1'的值为49,所以答案是1。
页:
[1]