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

Fließkommadarstellung im Binärsystem

 

graviton
Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 22.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2013, 19:06     Titel: Fließkommadarstellung im Binärsystem
  Antworten mit Zitat      
Hallo allerseits, kann mir einer vllt. verraten, wie die allgemeine Struktur aussieht, wenn man eine Fließkommadarstellung einer Dezimalzahl im Binärsystem erstellen soll? Ich bin gerade noch in der Anfangsphase und versuche mich zu orientieren.

Vielen Dank im voraus!
Grüße graviton
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.04.2013, 22:30     Titel: Re: Fließkommadarstellung im Binärsystem
  Antworten mit Zitat      
Hallo graviton,

Meinst Du die IEEE-754 Konvention? Zu diesem Stichwort findest Du viel im Netz.
Im Allgemeinen funktioniert die Binär-Darstellung der Nachkomma-Stellen genau wie bei den Vor-Komma-Stellen: Statt Vielfache von 1,2,4,8,16,... geht es um Vielfache von 1/2, 1/4, 1/8, ...

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
graviton
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 22.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2013, 22:48     Titel:
  Antworten mit Zitat      
Hallo, danke erstmal. Ich weiss an sich wie man das analytisch berechnet, z.B. wenn man die Dezimalzahl (0,1)_10 betrachtet und diese soll im Binärsystem umgewandelt werden. Nur ich weiss nicht, wie ich das syntax-technisch numerisch in Matlab genau darstellen soll. Muss man mit einer for-Schleife rangehen...? Wie würde den das Grundgerüst numerisch aussehen?
Grüße
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 23.04.2013, 00:02     Titel:
  Antworten mit Zitat      
Hallo graviton,

Was hast Du denn bisher versucht?
Das "Grundgerüst" könnte eine FOR-Schleife sein. Du könntest z.B. in der ersten Iteration berechnen, ob die Zahl größer ist als 2^-1, das wäre dann das erste Bit. Dann ziehe bei Bedarf 0.5 von der Zahl ab. In der zweiten Iteration käme dann ein Test mit 2^-2 usw.

Eine Suche in Matlabs File-Exchange ist wie immer eine gute Idee:
http://www.mathworks.com/matlabcent.....g-point-number-conversion
http://www.mathworks.com/matlabcent.....-to-binary-and-vice-versa
etc.

Gruß, Jan
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: 23.04.2013, 23:04     Titel:
  Antworten mit Zitat      
Wir hatten das schon mal so ähnlich:

http://www.gomatlab.de/negative-kom.....ight,bin%E4r+dezimal.html


Prinzipiell ging es darum, das dec2bin (Matlab-Funktion)
nur die Vorkommastellen macht.

Die Nachkommastellen kannst du so machen wie Jan vorgeschlagen hat,
wobei es da möglicherweise nie genau aufgeht.
Da müsstest du halt die Norm konsultieren wie das geregelt wird.

Gruß

Blues
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 23.04.2013, 23:47     Titel:
  Antworten mit Zitat      
Hallo Bluesmaster,
Zitat:
...wobei es da möglicherweise nie genau aufgeht.

Ja, genau! Hier tritt genau das Problem auf, dass Legionen von Anfängern verzweifeln lässt: Dezimal-Zahlen haben im Allgemeinen keine exakte Entsprechung im Binär-Format, so dass die interne Umwandlung verblüffende Konsequenzen haben kann:
Code:
0.3 - 0.2 - 0.1 == 0
>> 0 !!!

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
graviton
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 22.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2013, 21:27     Titel:
  Antworten mit Zitat      
Ja, es ist aufgegangen, man ist das umfangreich, um nur eine simple Dezimalzahl wie die (0.1)_10 als Binärzahl ausspucken zu lassen. An sich lässt sich die 0.1 auch nicht exakt in Binärzahl umschreiben. Die Mantisse ist periodisch (00011...)
Vielen Dank für die Antworten!
Beste Grüße Mounir
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: 25.04.2013, 22:31     Titel:
  Antworten mit Zitat      
irgendwo hab ich mal was von einer Methode gelesen,
in der die dezimalzahl einfach als ganz-Zahl mit
verschobenem Komma behandelt wird.
Komma wird dann bei Binär > Dezimal einfach
wieder dazu genommen

Dann muss man natürlich auch die Kommaposition codieren.
Das geht immer auf, kann aber je nach Fall auch mal
mehr Speicherplatz fressen.

IEEE-konform ist das dann glaube ich nicht

Gruß

Blues
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.