Реализация Atoi в C
Я не могу понять следующееatoi
код реализации, а именно эта строка:k = (k<<3)+(k<<1)+(*p)-'0';
Код:
int my_atoi(char *p) {
int k = 0;
while (*p) {
k = (k<<3)+(k<<1)+(*p)-'0';
p++;
}
return k;
}
Может кто-нибудь объяснить это мне?
Другой вопрос: каким должен быть алгоритмatof
реализация ?