Рассмотрим способность реализации в двоичной арифметике умножения. «Быстрый» вариант обыкновенного умножения был известен еще в Древнем Египте, его также называют «русским» или «крестьянским» методом.
Разберем пример такого умножения. Умножим 23 на 43 «русским методом».
23 | × | 43 |
46 | 21 | |
92 | 10 (четное) | |
184 | 5 | |
368 | 2 (четное) | |
736 | 1 |
Первый столбец состоит из результатов последовательного умножения первого сомножителя на 2, а второй — из результатов последовательного целочисленного деления второго сомножителя на 2. Далее суммируем числа первого столбца, рядом с которыми во втором столбце стоят нечетные числа.
Ответ: 23 х 43 = 23 + 46 + 184 + 736 = 989.
Такое умножение основано на следующих тождествах:
В результате получаем следующий рекурсивный алгоритм умножения целых двоичных чисел:
При реализации такого алгоритма в ограниченном числе разрядов к неверному результату могут привести операции сдвига влево (если старший разряд ненулевой) и сложения. В примере показаны ошибки, возникающие при работе в ограниченном числе разрядов.
Определим, при каких ограничениях умножение чисел в k-разрядах дает верный результат с точки зрения обычной арифметики.
(2k — |a|)(2k — |b|) = 22k — 2k (|a| + |b|) + |a|·|b|,
что в k -разрядной арифметике соответствует просто |a|·|b|, так как остальные слагаемые выходят за пределы k разрядов);
(2k — |a|)|b| = 2k|b| — |a|·|b|, но в k разрядах это просто 2k — |a|·|b|,
т.е. дополнительный код числа -|a|·|b| и для получения правильного результата умножения достаточно, чтобы |a|·|b| ≤ 2k-1.
Целочисленное деление с остатком в двоичной системе сводится к сравнению и вычитанию. Если как делимое так и делитель представимы в k-разрядном типе, то и результат деления и остаток от него будут получены правильно. Однако, если в делении участвуют отрицательные числа, то остаток компьютерного деления может не совпадать с математическим понятием остатка, и об этом следует помнить при программировании.
Если основа оригинала (карты пли плана) прозрачна, то копию можно снять при помощи стола со…
Определение координат точки. Пусть точка А (рис. 32) находится в квадрате, абсциссы и ординаты вершин…
Рельефом местности называется совокупность неровностей физической поверхности земли. В зависимости от характера рельефа местность делят…
Для обозначения на планах и картах различных предметов местности, применяются специально разработанные условные знаки. Для обличения…
В инженерной геодезии чаще всего пользуются топографическими картами. Их составляют в масштабах 1:10000, 1:25000, 1:50000…