в теме по ссылке Реализация функции atoi
для меня кое что неясно: зачем от текущей ячейки s[i]
отнимать символ '0'
? И можно ли фильтр содержимого сделать как нибудь иначе?
n = (n * 10) + (s[i] - '0');
Если n*10
необходимо для формирования разрядности числа (я ведь прав?), то с этим действием (s[i] - '0'
) не всё ясно. Пожалуйста вкратце объясните.
Потому что код символа '0'
не равен 0.
И чтобы получить численное значение из символа '0'
- вычитаем этот '0'
. А поскольку символы 0-9 идут подряд, вычитание '0'
из символа десятичной цифры дает ее значение.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
c++ how to get multiset which is the difference of two others multisets?
Какие нужно сделать условия, чтобы в виджете QLineEdit при написании текста, а затем при нажатии на кнопку принятия ("ОК"), были подходящими только...
Писала программу для сложения/ вычитания/умножения матриц в которые надо было посылать разные типыДля int все работало float, но надо было ее добавить...