3.4.4
Операция
деление на
2/10-чни числа
Десетичното
деление се
осъществява като
операция най-често
върху
модулите на
операндите.
Алгоритъмът
неизбежно
съдържа
етапа с проверките на
условията за
изпълнимост
и дефинираност
на
операцията.
Ако след тези
проверки
операцията
не е завършила,
се изпълнява
процедурата
за лява нормализация
на делителя и
делимото, в
резултат на
която се
определя
неизвестният
брой цифри в
частното.
Етапът
на
същинското
деление може
да се изпълни
както по
метода с
възстановяване
на остатъка,
така и по
метода без
възстановяване
на остатъка.
Що се отнася
до това,
каква организационна
схема за
логическата
структура на
едно бъдещо
устройство
да бъде избрана
(виж фигура 3.2.6.1
или фигура 3.2.6.2), в
случая има
една
съществена
особеност,
която
ще поясним. Тъй
като
операндите
са
представени
в бройна
система,
чиято основа
е много
по-голяма от
тази на
двоичната (10>2),
след
осъществяване
на всяко
поредно
изваждане на
нормализираните
операнди,
няма
гаранция, че
в старшия разряд
на разликата
(частичния
остатък) ще
се получи незначеща
цифра. Ако
бъде
възприета
схемата с
неподвижен делител
и изместваме
наляво
частичният
остатък при
метода без
възстановяване,
то рискуваме
да загубим
тази значеща
цифра, т.е. ще
изпълняваме
лявата
нормализация
некоректно.
Ето защо
делението
трябва да се
реализира по
схемата с
неподвижен
остатък.
Този факт е
специално
илюстриран
чрез числените
примери,
които са
представени
в книга
[2].
Поредната цифра на частното се определя по определение, т.е. чрез преброяване на изважданията на делителя от частичния остатък. Последователните изваждания се преброяват в отделен брояч (брояч на текущата цифра) и се прекратяват след получаване на отрицателна разлика (признак за невъзможност на следващи изваждания). Формираната в този брояч текуща цифра на частното (възможни са цифрите от 0 до 9) се прехвърля в регистъра на частното, след което броячът на текущата цифра се нулира, а към отрицателната разлика се прибавя делителят, с което се извършва възстановяване.
Следващата
цифра на
частното се
получава по
същия начин,
след
изместване
на делителя надясно
(по причини
обяснени
по-горе) на
един десетичен
разряд
спрямо
неподвижния
частичен остатък.
В
метода за
деление без
възстановяване
на остатъка,
след
получаване
на отрицателен
частичен
остатък и
изместване
на делителя
надясно, се
извършват
последователни
събирания,
до
получаване
на
положителен
частичен остатък.
По време на
събиранията,
същите се отброяват
в брояча на
текущата
цифра в обратен
ред, т.е. от
началната
стойност 9,
след всяко
успешно
събиране, от
брояча се изважда
единица. Тук
аналогията с
алгоритъма
за деление в
двоична
бройна
система е пълен
– фактически
при деление
на всеки такт
се цели
реализация
на операция
аритметическо
изваждане,
което се
постига като
се следи за
знака на
текущия
частичен
остатък. Така
в процеса на
деление
делимото се
“стопява” от
непрекъснатото
изваждане на
делителя.
Реализацията на този метод за деление изисква броячът на текущата цифра да бъде реверсивен.
Операция деление се счита за завършена след като се получат всички неизвестни цифри в частното. В края на операцията в регистъра на частното се записва знакът на частното, което се оказва представено в прав код.
Кратките
обяснения,
които
представиха
последните
две операции
от 2/10-чната
аритметика,
предполагат,
че читателят
вече добре
познава
съответните
методи.
Следващият
раздел е:
3.4.5
Смесена
десетично-двоична
форма на
числата с
плаваща
запетая -
(СДДФ) ,
(С10/2Ф) ( Decimal-Binary
floating point form
of numbers - DBFPF )