WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

negative Komazahlen von dezimal in binär umwandlen

 

elsklin
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2012, 17:28     Titel: negative Komazahlen von dezimal in binär umwandlen
  Antworten mit Zitat      
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..
Private Nachricht senden Benutzer-Profile anzeigen


Bluesmaster
Forum-Century

Forum-Century



Beiträge: 203
Anmeldedatum: 13.11.11
Wohnort: Gera
Version: 2012a
     Beitrag Verfasst am: 11.12.2012, 10:32     Titel:
  Antworten mit Zitat      
vielleicht können wir das auch abkürzen:

Code:


mit X € ganze Zahlen


für negative Zahlen und die Kommaregelung
braucht es dann wahrscheinlich Schaltbits.
Private Nachricht senden Benutzer-Profile anzeigen
 
elsklin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2012, 11:06     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 11.12.2012, 11:20     Titel:
  Antworten mit Zitat      
http://www.mathworks.de/support/sol.....n/data/1-1A27X/index.html
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Bluesmaster
Forum-Century

Forum-Century



Beiträge: 203
Anmeldedatum: 13.11.11
Wohnort: Gera
Version: 2012a
     Beitrag Verfasst am: 11.12.2012, 13:26     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
Verschoben: 11.12.2012, 13:55 Uhr von Jan S
Von Programmieraufträge nach Programmierung
 
Bluesmaster
Forum-Century

Forum-Century



Beiträge: 203
Anmeldedatum: 13.11.11
Wohnort: Gera
Version: 2012a
     Beitrag Verfasst am: 11.12.2012, 21:31     Titel:
  Antworten mit Zitat      
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

float2binFixedSize.m
 Beschreibung:

Download
 Dateiname:  float2binFixedSize.m
 Dateigröße:  1.69 KB
 Heruntergeladen:  506 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
elsklin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2012, 12:32     Titel:
  Antworten mit Zitat      
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..
Private Nachricht senden Benutzer-Profile anzeigen
 
elsklin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2012, 19:39     Titel:
  Antworten mit Zitat      
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!

float2binFixedSizeElsklin.m
 Beschreibung:

Download
 Dateiname:  float2binFixedSizeElsklin.m
 Dateigröße:  2.54 KB
 Heruntergeladen:  522 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.