Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Układ mnożący liczbę dziesiętną

tomekz1991 01 Nov 2012 12:01 1242 6
  • #1
    tomekz1991
    Level 9  
    Rozważmy następującą reprezentację liczb dziesiętnych:
    kodujemy binarnie każdż cyfrę dziesiętną osobno (na czterech bitach). Np. reprezentacją liczby 17 jest 00010111 (bo 1=0001 oraz 7=0111). Zaprojektuj
    układ, który mnoży zadaną na wejściu (czterobitowym) cyfrę dziesiętną przez 5. Wynik na ośmiobitowym wyjściu powinien być zakodowany również w opisany sposób.

    Pierwsze co mi przyszło na myśl to pomnożyć każdą cyfrę przez 5, ale to jest oczywiście błędne rozumowanie.

    W tym naszym przykładzie mamy 17*5=85 a ponieważ 8=1000 oraz 5=0011 to na wyjściu powinniśmy otrzymać 10000011. Pytanie jak to osiągnąć i jak uogólnić na dowolne liczby dziesiętne? Nie widzę algorytmu w jaki powstają te liczby. Zauważyłem jedynie to, że ostatnią cyfrą będzie zawsze 5.
  • #2
    jiwaniuk
    Level 31  
    Nie zawsze na końcu otrzymasz 5 bo przecież 2*5=10.
    Czy jednak nie prościej zamienić liczby na normalny kod binarny, mnożyć je w tej postaci i potem dopiero zamienić na kod BCD?

    Pozdrawiam wszystkich

    jjanek
  • #3
    tomekz1991
    Level 9  
    No tak, masz racje. Ale niestety nadal nie wiem jak zbudować taki układ. Powiedzmy, że na wejściu dostanę 00010111 i jak to teraz przemnożyć przez 5?
  • #4
    bonanza
    Power inverters specialist
    Pomnóż przez 10 i podziel przez 2. ;)
  • #5
    tomekz1991
    Level 9  
    A co mi to da? Nie umiem tworzyć układów mnożących...
  • #6
    jiwaniuk
    Level 31  
    Jeżeli to ma być tylko mnożenie przez 5 to można to zrobić tak:
    liczba 5 to binarnie 0101,
    podajesz na sumator na jedno wejście liczbę w postaci podstawowej, a na drugie wejście tą samą liczbę przesuniętą o dwa bity, a więc realizujesz operację
    liczba + 4 * liczba.
    Jest tylko jeden problem. Ten algorytm zadziała poprawnie tylko na kodzie binarnym.

    Pozdrawiam wszystkich

    jjanek
  • #7
    bonanza
    Power inverters specialist
    A mnożyć przez 10 bez kalkulatora Kolega potrafi?