Методика выполнения операций сложения и вычитания в этих системах аналогична выполнению соответствующих операций в 10 с/с. Ниже приведены примеры указанных операций.
Определенная трудность у начинающего программиста возникает при выполнении операции вычитания в 2, 8 или 16 с/с. Ссылка на то, что методика получения результата аналогична выполнению вычитания в 10 с/с, здесь не всегда помогает. Дело в том, что многие манипуляции, в том числе арифметические действия, мы выполняем автоматически, не задумываясь над последовательностью своих действий. Формализация же этих действий и составляет основу алгоритма решения поставленной задачи. В связи с этим обсудим в деталях порядок выполнения операции вычитания на конкретном примере.
Пример 11.8 A 0 0 3 E 7 B - 1 9 D 5 6 4 A A = 7 0 2 A D 9 D 1
1)
10
8 A 0 0 3 E 7 B
- 1 9 D 5 6 4 A A
. . . 9 D 1
Обозначим цифры уменьшаемого через , вычитаемого - через , разницы - через (если в вычитаемом меньше цифр, чем в уменьшаемом, то вычитаемое нужно дополнить слева незначащими нулями). При нумерации цифр справа налево индекс в данном примере изменяется от 0 до 7.
Если , то результат получаем обычным образом. Для имеем
(B – A)16 = (11 – 10)10 = 1 .
Для имеет место . Поэтому ищем ближайшую слева значащую цифру (это ), отнимаем от нее единицу и переносим эту единицу в первый разряд. То, что в изъята единица, обозначено точкой, а то, что это значение добавлено в первый разряд, записано над цифрой 7 (1016 = 1610). Тогда