Порівняння багаторозрядних чисел

Порівняння багаторозрядних чисел

Багаторозрядні числа представляють собою масив байтів, кожен з яких представляє собою символьне відображення відповідної цифри числа. Кількість розрядів такого числа визначається довжиною символьного рядка або розмірністю масиву.

Для багаторозрядних чисел операція порівняння здійснюється наступним чином (за умови що введені числа є позитивними):

  • Спочатку порівнюються довжини (кількість розрядів) двох розглянутих чисел. Великим є те число, яке містить більшу кількість розрядів.
  • Якщо кількість розрядів двох чисел збігається, вступає в силу поразрядное порівняння, яке триває до тих пір поки пари байтів двох чисел, що відповідають однаковим розрядам, рівні. Як тільки величина одного байта виявляється більше, формується рішення про результат порівняння чисел.

Функція порівняння чисел повертає

  • 1 в разі якщо перше число більше ніж друге
  • -1 в разі якщо перше число менше ніж друге
  • 0 якщо числа рівні.

Реалізація на C ++

#include
using namespace std;
int compare (char * a, char * b)
int lena = strlen (a); // кількість розрядів першого числа
int lenb = strlen (b); // кількість розрядів другого числа
if (lena> lenb)
return 1;
if (lenb> lena)
return -1;
for (int i = 0; i if (a [i]> b [i])
return 1;
if (a [i] return -1;
>
return 0;
>
int main ()
char a [1000] = <0>;
char b [1000] = <0>;
cout <<"a = " ;
cin.getline (a 1000);
cout <<"b = " ;
cin.getline (b 1000);
cout < cin.get ();
return 0;
>

Схожі статті