Рассмотрим способность реализации в двоичной арифметике умножения. «Быстрый» вариант обыкновенного умножения был известен еще в Древнем Египте, его также называют «русским» или «крестьянским» методом.
Разберем пример такого умножения. Умножим 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-разрядном типе, то и результат деления и остаток от него будут получены правильно. Однако, если в делении участвуют отрицательные числа, то остаток компьютерного деления может не совпадать с математическим понятием остатка, и об этом следует помнить при программировании.
Разница между энергией электрического поля и энергией магнитного поля примерно такая же, как между энергией,…
Когда-то легендарный пастух Магнес, нашел природный магнитный камень, притягивающий железо. В последствии этот камень назвали магнетит или магнитный…
В электрических цепях применяются различные способы соединения конденсаторов. Соединение конденсаторов может производиться: последовательно, параллельно и последовательно-параллельно (последнее иногда называют смешанное соединение конденсаторов). Существующие…
Обозначение конденсаторов на схемах определено ЕСКД ГОСТ 2.728-74. Обозначения условные графические в схемах. Резисторы, конденсаторы. Итак,…
Узнав, что же такое конденсатор, рассмотрим, какие бывают виды конденсаторов. Итак, виды конденсаторов можно классифицировать по…
Вся энергия заряженного конденсатора сосредотачивается в электрическом поле между его пластинами. Энергию, накопленную в конденсаторе, можно определить…