谁能告诉我为何要 input[i] - 48 谢谢 ~~
#include <stdio.h>char input, symbol;
int result, num1, num2, i;
int main() {
printf("Enter an expression ");
gets(input);
i = 0;
num1 = 0;
while (input != ' ') {
printf("%d\n",input);
num1 = num1 * 10 + input-48;
i++;
}
i++;
symbol = input;
i++;
i++;
num2 = 0;
while (input != '\0') {
num2 = num2 * 10 + input - 48;
i++;
}
if (symbol == '+') {
result = num1 + num2;
}
if (symbol == '-') {
result = num1 - num2;
}
printf("%d %c %d = %d\n", num1, symbol, num2, result);
}
我又来了~~~
'0' 的ascii码值是0x30 ,十六进制的30H转换成十进制就是48
例如,字符'3'的ASCII码值为0x33,想转变成数字3,就可以了利用'3' - '0' = 3
减法就是为了将字符类型的数字,转换为整数类型的值。 题目是什么? 这程序实现的是。。 读取 字符串 然后。。做加减法运算。。 我没搞懂 input-48是为什么。。
n0noper 发表于 2016-10-4 10:54
我又来了~~~
'0' 的ascii码值是0x30 ,十六进制的30H转换成十进制就是48
谢谢你, 我明白了 0的ascii是48, 数字1-9都已用其ascii码-48 来实现。。。,谢谢你。!
页:
[1]