求解
本帖最后由 HZY222 于 2022-4-4 15:37 编辑int num = 0;
printf("请输入待转换的字符串:");
do
{
ch = getchar();
if (ch >= '0' && ch <= '9')
{
num = 10 * num + (ch - '0');
}
else
{
if (num)
{
break; // 如果已有数字,则退出循环
}
}
}
while (ch != '\n');
printf("结果是:%d\n", num);
return 0;
}
没看懂这题, num = 10 * num + (ch - '0');
这个是啥意思,求解答
代2个数字进去什么都懂了。
ch = 1
10*0 + ('1'-'0')=1, num =1
ch = 2
10*1 + ('2'-'0')=10+2 = 12, num = 12
整个代码的意思是 把字符串数字,转换成整形
(ch-'0') 把字符转成整型
10 * num 实现往左移1位
页:
[1]