Пример умножения двоичных чисел сервисом www.reshinfo.com:
машинный метод

Ваша задача будет решена с вашими исходными данными OnLine и бесплатно

Задача:

Выполнить умножение чисел A = 3a8c16 и B = 4b616 в двоичной системе счисления, начиная с младших разрядов множителя и сдвигом суммы частичных произведений вправо.


Решение:

1) Переведем числа в двоичную систему счисления (работать будем только с модулями чисел, знак результата получим из анализа знаков исходных чисел):

    316 = 111010100011002
    416 = 100101101102

2) Впишем множимое A в 16-ти разрядный регистр, начиная с младших разрядов (нумерация разрядов начинается с нуля). В недостающие разряды записываем нули.

Разр.1514131211109876543210
A: 0011101010001100

3) Впишем множитель В в 16-ти разрядный регистр, начиная с младших разрядов. В недостающие разряды записываем нули.

Разр.1514131211109876543210
B: 0000010010110110

4) Подготовим (обнулим) регистр результата C удвоенной разрядности (32 бит). Произведение содержит в два раза больше разрядов чем исходные сомножители.


Разр.313029282726252423222120191817161514131211109876543210
C: 00000000000000000000000000000000

5) Дальнейший порядок действий будет следующий:
    5.1) Анализируем очередной разряд множителя В (начинаем с младших), если он "1", то прибавляем множимое A к старшим разрядам регистра С, результат снова в С. Если очередной разряд множителя "0", пропускаем данный шаг.
    5.2) Сдвигаем содержимое регистра С на один разряд вправо. При этом крайний левый (старший) разряд заполняется нулем. Но если перед этим была операция сложения, во время которой возник перенос из старшего разряда, то тогда крайний левый разряд заполняется единицей.
    5.3) Действия описаные в п.п. 5.1 и 5.2 повторяем пока не будут проанализированы все разряды множителя.

Весь процесс умножения выглядит следующим образом :


 Разр.c313029282726252423222120191817161514131211109876543210
B 00000000000000000000000000000000
0-->00000000000000000000000000000000
1+ A0011101010001100                
=00111010100011000000000000000000
11111
-->00011101010001100000000000000000
1+ A0011101010001100                
=01010111110100100000000000000000
-->00101011111010010000000000000000
111111111111
0-->00010101111101001000000000000000
1+ A0011101010001100                
=01010000100000001000000000000000
111
-->00101000010000000100000000000000
1+ A0011101010001100                
=01100010110011000100000000000000
-->00110001011001100010000000000000
1111
0-->00011000101100110001000000000000
1+ A0011101010001100                
=01010011001111110001000000000000
-->00101001100111111000100000000000
0-->00010100110011111100010000000000
111111
0-->00001010011001111110001000000000
1+ A0011101010001100                
=01000100111100111110001000000000
-->00100010011110011111000100000000
0-->00010001001111001111100010000000
0-->00001000100111100111110001000000
0-->00000100010011110011111000100000
0-->00000010001001111001111100010000
0-->00000001000100111100111110001000

Здесь в колонке "В", сверху вниз, записаны разряды множителя, начиная с младших. А в следующем столбце - символика действий предпринимаемых в зависимости от значения соответствующего разряда множителя. Смысл этих символов следующий:
    + A - число A прибавляется к регистру С;
    --> - содержимое регистра С сдвигается на один разряд вправо;
   " = " - показывается значение частичного произведения полученного после сложения, которое заносится в регистр С.

6) Определяем знак результата. Если знаки исходных сомножителей одинаковы, то результирующее произведение положительно и наоборот. В нашем случае знаки совпадают, следовательно результирующее произведение положительно.



Ответ:    111010100011002 x 100101101102 = 10001001111001111100010002

или в шестнадцатеричной системе счисления: 3a8c16 x 4b616 = 113cf8816




...перемножить MOИ чиcла в двоичной системе


...см.пример умножения ручным методом


...к списку решаемых задач