Zrozumienie konkretnego miejsca w kodzie

0

Witam, mam problem ze zrozumieniem kodu. Znalazłem taki o to kawałek kodu:

#include <iostream>
#include <string>

using namespace std;

// funkcja zwraca ciąg znaków będący wynikiem dodawania argumentów
//----------------------------------------------------------------

string dodaj(string a, string b)
{
    // wyznaczamy pozycję ostatniej cyfry w obu łańcuchach

    int pa = a.length() - 1;
    int pb = b.length() - 1;

    // zerujemy łańcuch wynikowy

    string wynik = "";

    // na początku przeniesienie wynosi 0

    int p = 0;

    // w pętli dodajemy kolejne cyfry a i b

    while(pa >= 0 || pb >= 0)
    {
        // wyliczamy wartości cyfr w łańcuchach a i b

        int ca, cb, w;

        if(pa >= 0) ca = a[pa] - **48**; else ca = 0;
        if(pb >= 0) cb = b[pb] - **48**; else cb = 0;

        // obliczamy sumę cyfr z a i b, uwzględniając przeniesienie

        w = ca + cb + p;

        // do łańcucha wynikowego wstawiamy ostatnią cyfrę w

        wynik = "0" + wynik;
        wynik[0] = **48** + w % 10;

        // obliczamy przeniesienie do następnej kolumny

        p = w / 10;

        // modyfikujemy indeksy kolumn w łańcuchu a i b

        pa--; pb--;
    }

    // jeśli przeniesienie wynosi 1, dopisujemy cyfrę 1 do wyniku

    if(p) wynik = "1" + wynik;

    return wynik;
}

int main()
{
    string a, b;

    cin >> a >> b;

    cout << a << " + " << b << " = " << dodaj(a,b) << endl;

    return 0;
}  

Ogólnie jak działa program nie jest dla mnie problemem, jednak nie mam pojęcia skąd w zaznaczonych gwiazdkami miejscach liczba 48? Program ma dodawać dwie dowolnej długości liczby, uwzględniając przeniesienie.

Z góry dziękuje za pomoc, pozdrawiam.

0

program NIE dziala, zacznijmy od tego (nie kompiluje sie)

druga sprawa. 48 to znak 0 w kodzie ascii, zapewne o to chodzi.

0

No tak, NIE działa ale jest poprawny.
Już wiem, to jest chyba zamiana z chara na inta, dodaje 48 w celu zamiany.
Dzięki za pomoc, problem rozwiązany.

1 użytkowników online, w tym zalogowanych: 0, gości: 1