Witam Pasjonatów :)
Borykam się z problemem zrozumienia algorytmu Booth'a, który aktualnie mam na studiach (przedmiot Architektura systemów komputerowych).
Uczono mnie tak, że np posiadam dwie liczby
01010 (10 w dziesiętnym) MNOŻNA
11001 (-7 w dziesiętnym) MNOŻNIK
Mnożę te liczby stosując algorytm Booth'a, czyli dopisuję do mnożnika 11001 | 0 i porównuje kolejno pary (czyli do wyzerowanego licznika 00000 stosuję kolejne operacje), przy czym 01 to dodawanie mnożnej, 10 odejmowanie mnożnej czyli dodawanie mnożnej w systemie u2 oraz oczywiscie przesuniecie po tych operacjach, 11 i 00 to tylko przesunięcie. Problem mój kończy się na wyniku, który zawsze wychodzi zły, przy tym wyszło mi 001111010. Czy ktoś może mi wytłumaczyć krok po kroku jak się mnoży za pomocą tego algorytmu? I dlaczego dopisujemy zero w mnożniku? Czy gdy mamy 0 dopisujemy 1? Bo to niestety nie zostało dobrze mi wytłumaczone, a rozwiązania w sieci żadnego zrozumiałego nie widzę.
Z góry wielkie dzięki za pomoc! :)
Borykam się z problemem zrozumienia algorytmu Booth'a, który aktualnie mam na studiach (przedmiot Architektura systemów komputerowych).
Uczono mnie tak, że np posiadam dwie liczby
01010 (10 w dziesiętnym) MNOŻNA
11001 (-7 w dziesiętnym) MNOŻNIK
Mnożę te liczby stosując algorytm Booth'a, czyli dopisuję do mnożnika 11001 | 0 i porównuje kolejno pary (czyli do wyzerowanego licznika 00000 stosuję kolejne operacje), przy czym 01 to dodawanie mnożnej, 10 odejmowanie mnożnej czyli dodawanie mnożnej w systemie u2 oraz oczywiscie przesuniecie po tych operacjach, 11 i 00 to tylko przesunięcie. Problem mój kończy się na wyniku, który zawsze wychodzi zły, przy tym wyszło mi 001111010. Czy ktoś może mi wytłumaczyć krok po kroku jak się mnoży za pomocą tego algorytmu? I dlaczego dopisujemy zero w mnożniku? Czy gdy mamy 0 dopisujemy 1? Bo to niestety nie zostało dobrze mi wytłumaczone, a rozwiązania w sieci żadnego zrozumiałego nie widzę.
Z góry wielkie dzięki za pomoc! :)