Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Набір процедур маніпулювання з цілими числами довільної довжини

Реферат Набір процедур маніпулювання з цілими числами довільної довжини





ї виражені через ці дві. При роботі

операцій <і! = спочатку перевіряються знаки і довжини чисел, і

тільки у разі їх збігу виробляється порозрядне

порівняння чисел (в якості розрядів тут беруться цілі

байти - тобто розряди в системі числення з підставою 100).


Реалізація операцій арифметики:


Операція унарний + просто повертає саме число.

Операція унарний - повертає новий об'єкт класу UNLIM,

який посилається на те ж подання модуля числа, що і

аргумент, і має знак, протилежний знаку аргументу.

Операція бінарний + визначена і для випадків, коли

знаки операндів збігаються, і коли ці знаки різні.

У першому випадку знак результату відповідає знаку

одного (кожного) з операндів, а модуль результату є

результатом складання модулів операндів. При цьому якщо

кількість розрядів першого операнда одно A, а другого - B,

то кількість розрядів операнда може бути або max (A, B),

або max (A, B) +1, тому при виділенні пам'яті під масив для

модуля результату береться друге значення. Ніякої

оптимізації цього масиву після складання модулів операндів

не робиться, так як в даному випадку втрата пам'яті на

лідируючі нулі може бути максимум 1 байт, і вигідніше

заощадити на швидкості, ніж на пам'яті.

У разі, коли знаки операндів різні, знак

результату дорівнює знаку операнда з максимальним модулем, а

модуль результату вийдуть вирахуванням модуля операнда з

мінімальним модулем з модуля операнда з максимальним

модулем. При цьому під модуль результату виділяється масив

довжини, рівної найбільшою з довжин операндів, але після

віднімання чисел він оптимізується функцією optimize (),

яка видаляє лідируючі нулі (створює новий масив довжини,

необхідної для зберігання модуля числа без лідируючих нулів,

копіює в нього все значущі розряди, переадресовує

посилання дескриптора на цей масив і видаляє старий масив).

Додавання і віднімання модулів аргументів проводиться в

системі числення з основою 100.

Операція бінарний - визначена через унарний мінус і

бінарний плюс.

Операція * проводиться за технології, аналогічної

множенню в стовпчик. При цьому всі дії ведуться в системі

числення з основою 100. Довжина масиву результату може

дорівнювати або сумі довжин операндів, або цій сумі мінус

1. Ця ситуація аналогічна тій, яка була при додаванні

чисел з однаковим знаком, і тут теж не робиться

оптимізації.

Операція <<- просто операція виведення класу OSTREAM,

визначена для класу UNLIM. Спочатку вона виводить '-' якщо

знак числа негативний, а потім саме число поразрядно (за

десятковим розрядам), починаючи з старшого. При цьому

...


Назад | сторінка 2 з 3 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розвиток довільної уваги у старших дошкільників із загальним недорозвинення ...
  • Реферат на тему: Етикет менеджера і його дотримання при здійсненні ним різних управлінських ...
  • Реферат на тему: Ризико Здійснення платіжніх операцій через Інтернет
  • Реферат на тему: Види митних процедур і митний контроль за дотриманням умов митних процедур
  • Реферат на тему: Знайомство учнів з новими числами на уроці математики