|
|
negative Komazahlen von dezimal in binär umwandlen |
|
elsklin |

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 10.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.12.2012, 17:28
Titel: negative Komazahlen von dezimal in binär umwandlen
|
 |
Huhu
Ich muss negative (und positive) Zahlen <0 (zB. -0.0022) umrechnen zu binär (1111111110110111111011). Es sind 21 Stellen plus das Vorzeichen Bit, also 22.
Der Rechenvorgang ist mir klar, auf Papier schaffe ich das tiptop. Aber es ist etwas mühsam, dafür gibts ja Matlab. Ich habe leider keine Ahnung wie man so etwas programmiert. Einfachere Programme habe ich zum laufen gebracht dank googeln und nachvollziehen, aber da hatte es entweder keine negativen Zahlen drinnen und/oder keine Kommazahlen...
Herzlichen Dank für Vorschläge..
|
|
|
|
|
Bluesmaster |

Forum-Century
|
 |
Beiträge: 203
|
 |
|
 |
Anmeldedatum: 13.11.11
|
 |
|
 |
Wohnort: Gera
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 11.12.2012, 10:32
Titel:
|
 |
vielleicht können wir das auch abkürzen:
mit X ganze Zahlen
für negative Zahlen und die Kommaregelung
braucht es dann wahrscheinlich Schaltbits.
|
|
|
elsklin |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 10.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.12.2012, 11:06
Titel:
|
 |
danke für Deine Antwort Bluesmaster!
Das Problem liegt nicht bei den ganzen Zahlen, sondern bei den Kommazahlen. Dec2bin(x) kann nur positive integer rechnen glaube ich?
Meine Zahlen in diesem Fall sind alle kleiner Null.. entweder positiv oder eben negativ. Ich brauche sie auch nicht in einem IEEE Format, sondern einfach 21Bit lang plus das MSB als Vorzeichenbit.
..wie meinst Du das mit den Schaltbits?
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 11.12.2012, 11:20
Titel:
|
 |
|
|
Bluesmaster |

Forum-Century
|
 |
Beiträge: 203
|
 |
|
 |
Anmeldedatum: 13.11.11
|
 |
|
 |
Wohnort: Gera
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 11.12.2012, 13:26
Titel:
|
 |
Schaltbits damit meinte ich
1 Schaltbit für Vorzeichen
X Schaltbits für * 10 ^ X
(Ich dachte um das Komma zu entfernen codiert man in die Binärzahl
einfach mit ein, durch wieviel sie dividiert werden muss, ist aber Blödsinn
merke ich gerade, denn natürlich kann auch eine Binärzahl Kommastellen besitzen)
hier gibt es eine Lösung fürs IEEE-Format mit 52 Stellen, dann natürlich ohne Komma:
http://www.mathworks.com/matlabcent.....rsion/content/float2bin.m
Ich habe auch einen Algorithmus im Kopf mit Komma, ich setzte mich heute Nachmittag mal ran.
Gruß
Blues
|
|
|
Verschoben: 11.12.2012, 13:55 Uhr von Jan S Von Programmieraufträge nach Programmierung |
Bluesmaster |

Forum-Century
|
 |
Beiträge: 203
|
 |
|
 |
Anmeldedatum: 13.11.11
|
 |
|
 |
Wohnort: Gera
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 11.12.2012, 21:31
Titel:
|
 |
Hm,
hat sich als kniffeliges Problem erwiesen.
Es scheint, als ob der Algorithmus für Nachkommastellen eine
andere mathematische Grundlage hat, sprich während die
Umschreibung von
135 ( 1 * 10^1 + 3 * 10 ^1 + 5 * 10^0)
in x1 * 2^n + x2 * 2^(n-1) ....
immer genau aufgeht, scheint das mit der Konvergenz der Reihe
y1 * 2^-1 + y2 * 2^-2 + ... usw
nicht so gut bestellt zu sein, dh. es können auch mal verdammt viele
binäre Nachkommastellen werden. Ich habe deshalb mit einem
Abbruchkriterium umgesetzt (Schleife)
Meine Funktion sieht so aus:
float2binFixedSize( Dezimalzahl , gewünschteStellenanzahl )
Schau mal ob sie für dich ok ist (Anhang)
Gruß
Blues
Beschreibung: |
|
 Download |
Dateiname: |
float2binFixedSize.m |
Dateigröße: |
1.69 KB |
Heruntergeladen: |
506 mal |
|
|
|
elsklin |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 10.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.12.2012, 12:32
Titel:
|
 |
huhu Blues
danke viel mal für Deinen Aufwand! Das Programm macht mit den positiven Zahlen genau das was es soll. Ja das mit den Nachkomastellen ist mühsam...
Spannend zu sehen wie Du das gelöst hast!
Danke nochmals..
|
|
|
elsklin |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 10.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.12.2012, 19:39
Titel:
|
 |
huhu
habe es nun noch angepasst, so dass es mit den negativen Zahlen auch geht.
Ich brauche eben nur die Nachkommastellen (weil ich es für normierte Koeffizienten brauche) somit schnippsle ich vorne nochmals etwas weg.
Ohne Deine Hilfe hätte ich es aber nicht soweit gebracht, daher nochmals danke!
Beschreibung: |
|
 Download |
Dateiname: |
float2binFixedSizeElsklin.m |
Dateigröße: |
2.54 KB |
Heruntergeladen: |
522 mal |
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|