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
Andreas B. schrieb: > Ich habe meinetwegen 0.1011 und das soll binär kodiert einer dezimal > 0,6875 entsprechen. 2^-1 + 2^-3 + 2^-4 = 0,5 + 0,125 + 0,0625 = 0,6875 HIH
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
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...
Die Darstellung gebrochener Zahlen im Binärsystem hat überhaupt nichts Magisches an sich. Es ist einfach die logische Fortsetzung der Darstel- lungen ganzer Zahlen, wobei die Exponenten der Stellenwerte der Nachkom- mastellen eben negativ werden: http://de.wikipedia.org/wiki/Dualsystem#Definition_und_Darstellung
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
Andreas B. schrieb: > Gibt es einen fertigen Rechner zum fixen Überprüfen der Testbench dazu? Google nannte mir dieses: http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.