Цифровой символ в число в C#
Символ "'7'" - не число 7. В арифметике
char превращается в int, и плюс
складывает коды, а не «цифры как текст»:
char ch1 = '1';
char ch2 = '2';
Console.WriteLine(ch1 + ch2); // prints 99
Число, которое обозначает цифра, получают вычитанием
кода "'0'". Для "'7'" это 7:
char ch = '7';
int num = ch - '0';
Console.WriteLine(num); // prints 7
Сложим два таких числа:
char ch1 = '1';
char ch2 = '2';
int num1 = ch1 - '0';
int num2 = ch2 - '0';
Console.WriteLine(num1 + num2); // prints 3
Буква цифрой не является. Вычитание кода
"'0'" все равно выполняется и дает число,
только это уже не цифра:
char ch = 'a';
Console.WriteLine(ch - '0'); // prints 49
Даны два символа:
char ch1 = '4';
char ch2 = '5';
Найдите сумму чисел, которые обозначают эти цифры, и выведите ее.
Дан символ:
char ch = '7';
Найдите число, которое обозначает эта цифра, и выведите его.
Дан символ:
char ch = '8';
Найдите число, которое обозначает эта цифра,
и выведите его произведение на 2.
Дан следующий код:
char ch1 = '1';
char ch2 = '2';
Console.WriteLine((ch1 + ch2) - '0');
Программа запускается, но результат неверный. Найдите ошибку в рассуждении.