Дополнительный десятичный код
Добавлено: 28 янв 2016, 20:33
Нужна помощь в составлении кода, который будет вычислять дополнительный десятичный код
Вручную можно проще: если число отрицательно, то вычесть его модуль из числа, на единицу большего максимально представимого в данной разрядности. Хотя проще - не значит лучше. И проще ли такой алгоритм при программной, или аппаратной реализации? Сомневаюсь. + ещё надо работать с числом большей разрядности, а для неё опять придётся решать ту же задачу и разорвать этот порочный круг можно только длинной арифметикой без фиксированной разрядности. Человек другой арифметикой и не владеет, короткая у него - это на одну цифру, а разрядность определяется не типом, а самим числом, машина же устроена иначе.Romeo писал(а):Всё сравнительно просто, если судить по википедии.
Аналогично двоичному дополнительному коду, достаточно знать разрядность самого число и максимально возможную принятую разрядность. Для вычисления кода нужно в цикле получить одна за одной цифры числа (посредством циклического вычисления остатка от деления на 10), для каждой цифры вычислить разность (9 - цифра), затем сложить получившиеся цифры снова в число и добавить к этому числу единичку.