Binäre Brüche

OP #2499209
Lesenswert?

Hallo zusammen,

Ich habe ein Rechenwerk in VHDL, in dem eine ganze Zahl mit einem Bruch 
multipliziert wird. Damit wird quasi eine Division erreicht.

Leider verstehe ich den Ansatz nicht ganz, wie man binär einen Bruch 
bilden kann.

Ich habe meinetwegen 0.1011 und das soll binär kodiert einer dezimal 
0,6875 entsprechen.

Kann mir jemand die Umrechnung erklären?
Denn mit normaler Umrechnung zwischen Basis2 und Basis10 hat das wohl 
nichts zu tun.

Ich habe schon gegooglelt, aber einen schlüssigen Ansatz habe ich nicht 
gefunden.

Vielen Dank,
Andi
Gast #2499224
Lesenswert?

Binär 0.1011 entspricht 1011 / 2^4, analog zu 0,6875 = 6875 / 10^4.
Wenn man das weiß, kann man 1011 in Dezimal umrechnen, das wären dann 
11. Nun muss man nur noch 11 / 2^4 berechnen und bekommt 0.6875.

Ich denke das sind Fixedpoint-Zahlen, wahrscheinlich wird einfach jede 
Zahl mit 2^4 multipliziert (oder um 4 Binärstellen verschoben) um 
Nachkommastellen zu bekommen. Auf diese Weise kann man dann Zahlen 
kleiner 1 darstellen und tatsächlich Divisionen durch Multiplikationen 
darstellen.

Allerdings muss man aufpassen, wenn man zwei Fixedpoint-Zahlen 
multipliziert, verschiebt sich das Komma:
1011/2^4 * 1011/2^4 = 0111 1001 / (2^4*^2^4) = 121 / 2^8 = 0.4727
Um wieder zu den Fixpoint-Zahlen mit dem Komma an der 4. Binärstelle zu 
kommen muss man also durch 2^4 teilen, oder halt Binär um 4 Stellen nach 
rechts schieben.

Martin
Moderator (Firma: Titel) Persönliche Seite #2499282
Lesenswert?

Das findet sich was im 
Beitrag "Re: Digital Down Converter Bitbreiten" und im 
Beitrag "Re: Festkomma Berechnungen"


Andreas B. schrieb:
> Ich habe meinetwegen 0.1011 und das soll binär kodiert einer dezimal
> 0,6875 entsprechen.
> Kann mir jemand die Umrechnung erklären?
Rechne mal 1/16 * 11. Was kommt raus?
Kurz: bei 4 binären Nachkommastellen ist das LSB 1/16 wert.
Und du hast 11 davon...
OP #2499580
Lesenswert?

Vielen Dank an alle!
Auf die Idee, die Folge ...2^1, 2^0 einfach ins Negative fortzuführen, 
bin ich nicht gekommen.

Gibt es einen fertigen Rechner zum fixen Überprüfen der Testbench  dazu?
Immer die ganzen nagativen 2er Potenzen nachrechnen ist selbst bei 
Stichproben mühsam.

Excel kann sicher sowas, aber das dauert länger als sinnvoll.

Vielen Dank!
Andi

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren