Numerele cu numere multiple reprezintă o serie de octeți, fiecare reprezentând simbolic cifra corespunzătoare numărului. Numărul de biți ai unui astfel de număr este determinat de lungimea șirului de caractere sau de dimensiunea matricei.
Pentru numerele de mai multe cifre, operația de comparație se realizează după cum urmează (presupunând că numerele introduse sunt pozitive):
- În primul rând, se compară lungimea (numărul de cifre) a celor două numere examinate. Cu cât este mai mare numărul, care conține mai multe numere.
- Dacă numărul de cifre a două numere este același, se produce o comparație bitwise, care continuă atât timp cât perechile de octeți a două numere care corespund acelorași cifre sunt egale. De îndată ce valoarea unui octet este mai mare, se ia o decizie cu privire la rezultatul comparării numerelor.
Funcția de comparare a numărului revine
- 1 dacă primul număr este mai mare decât al doilea
- -1 dacă primul număr este mai mic decât al doilea
- 0 dacă numerele sunt egale.
Implementarea în C ++
#include
folosind namespace std;
int compară (char * a, char * b)
int lena = strlen (a); // numărul de cifre din primul număr
int lenb = strlen (b); // numărul de cifre al celui de-al doilea număr
dacă (lena> lenb)
retur 1;
dacă (lenb> lena)
retur -1;
pentru (int i = 0; i
retur 1;
dacă (a [i] retur -1;
>
retur 0;
>
int main ()
[1000] = <0>;
char b [1000] = <0>;
cout <<"a = " ;
cin.getline (a, 1000);
cout <<"b = " ;
cin.getline (b, 1000);
cout <
retur 0;
>