Метод девятичных дополнений/дополнение до девяти

Рейтинг: 0Ответов: 1Опубликовано: 19.08.2023

Всем привет. Начал читать книгу Андрея Столярова "Азы программирования" 1 том. В начале он рассказывает о Паскалине и о том как машина выполняет сложение и вычитание. Если сложение выполнялось просто, то для вычитания приходилось использовать метод девятичных дополнений.

Объяснение метода начинается с "Если у нас (для примера) всего пять разрядов, то перенос в шестой разряд, как и заём из него, благополучно теряется, что позволяет вместо вычитания числа выполнять прибавление некоторого другого числа."

Здесь мне не понятно каким образом, то что мы не можем занять из шестого разряда дает нам возможность выполнять сложение вместо вычитания. С переносом понятно, когда мы переносим в шестой разряд, значение теряется и остается ровно то, что нужно, а вот с заёмом не очень.

Может здесь есть те, кто разбирается в этой теме)

Как получить результат посредством дополнения до девяти мне понятно, но хотелось бы получше разобраться в этом методе.

Ответы

▲ 1

Я представляю это как механический счетчик, есть диск с цифрами 0-9. Если в данный момент мы видим 0, и хотим увидеть 7, можем повернуть на три позиции в одном напрвлении, либо повернуть на 7 позиций в другом, в обоих случаях увидим 7. Рассмотрим пример вычитания.

x-y 00555-00278

можно крутить в одну сторону, делая заемы в разряде десятков и сотен, получается 00277. Можно крутить в другую сторону, представив 100000 - 00278 = 99722

00555+99722=100277, шестой разряд мы не видим.

x-y=x+(100000-y)-100000