Showing posts with label intregi lungi. Show all posts
Showing posts with label intregi lungi. Show all posts

Sunday, November 29, 2015

Limbajul C. Adunarea intregilor lungi. Aspecte netriviale intr-o problema aparent banala.

Puterm reprezenta, in conformitate cu tipurile de baza din limbajul C, numere intregi pozitive de la 0 la 2^32 - 1 sau numere intregi cu semn in domeniul: -2^31, +2^31 - 1.

Intrucat limbajul nu impune restrictii (dar sistemul de operare si compilatorul pot impune restrictii!) asupra dimensiunii tablourilor de intregi (== asupra memoriei alocate static), putem imagina un sistem de citire si afisare a numerelor intergi lungi de o dimensiune convenabila utilizatorului, fiind, de asemenea, posibila si simularea operatiilor aritmetice cu astfel de numere.

Desigur, trebuie tinut cont de mecanismul de transport: daca doua cifre situate pe pozitii corespunzatoare dau, adunate, un rezultat mai mare decat valoarea bazei de reprezentare, in cazul de fata 10, trebuie adunat 1 (== valoarea transportului) la rezultatul adunarii cifrelor de pe urmatoarea pozitie si, de asemenea, verificat iar rezultatul prin comparatie cu baza etc.

Este clasicul algoritm invatat in clasa a 2-aJ