1.) Правая часть "6" * Правая часть "10" = 10*10 = 0100
2.) Правая часть "6" * Левая часть "10" = 10*10 = 0100
3.) Левая часть "6" * Правая часть "10" = 01*10 = 0010
4.) Левая часть "6" * Левая часть "10" = 01 * 10 =0010
Далее идёт сложение:
0100
+ 0100
0010
0010
Ответ: 00111100
Асм, Алгоритм умножения
банальный цикл, когда число складываеться Н раз
и сравнение двух чисел, а потом уже только складывание Меньшее кол-во раз
Нашел формулировку 3го алгоритма, когда умножение происходит методом "сдвига и сложения", но реализовать его не смог. Кто-нибудь может пояснить как этот метод реализуеться? или хотя бы ссылку на нормальную инфу кинуть(я искал, но ничего делбного не нашел). Заранее очень благодарен:)
Никто не знает? Или я что-то неправильно написал? Могу объяснить как происходит умножение: допустим надо перемножить два числа 6 и 10, представляем их в 2чной системе, т.е, 6 = 01.10 и 10 = 10.10. Числа разделены на папы не случайно: части переумножаются в следующем порядке:
Пусть есть a и b (представляешь их себе в двоичном виде), которые нужно перемножить, и есть c - приёмник результата (он по сути должен вместить результат произведения). a (или его замена) тоже должен быть таким же вместительным, что и c. Далее идёт цикл:
1) Сдвигаешь b вправо на один бит.
2) Смотришь, если при сдвиге произошёл перенос - тогда добавляешь a к c;
3) Сдвигаешь a на один бит влево;
4) Если b ещё не ноль, переходишь к пункту 1.
Спасибо, попробую...