|
|
2 8 bit zu einer 16 Bit zahl signed zusammensetzen |
|
Help! |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.08.2011, 11:59
Titel: 2 8 bit zu einer 16 Bit zahl signed zusammensetzen
|
 |
Hallo Forum!!
Ich glaube mein Problem ist schnell erledigt:
Ich bekomme über einen Bus über fread 2 8 Bit zahlen, die aber eigentlich zusammen eine signed 16 Bit zahl ist. Das heist -1 ist 11111111 11111110. Das will ich als Dezimalzahl haben!! Ich hab alles probiert aber ich bekomme immer einen fehler. Weis einer, wie das geht?
|
|
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 19.08.2011, 12:33
Titel:
|
 |
Was heißt alles probiert...hast du auch die Glaskugel befragt?
Wie kommst du darauf, dass -1 deine angebene Zahl im Dualsystem ist...soll das im 2er Komplement sein?
|
|
|
Kevin |

Forum-Fortgeschrittener
|
 |
Beiträge: 93
|
 |
|
 |
Anmeldedatum: 18.08.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.08.2011, 12:35
Titel:
|
 |
Hi,
wenn ich nicht ganz neben mir bin, kann fread nur auf eine Datei, nicht aber auf einen BUS zugreifen.
(Das mit dem Komma steht da ja garnicht...ups)
Aber geht int16 nicht?
Gruß
Kevin
_________________
1000 Buchstaben? Warum nur 6?
|
|
|
Help! |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.08.2011, 19:23
Titel:
|
 |
Das Einlesen über fread funktioniert super. Ich hab jetz mal 2 Variablen nacheinander direkt gesendet. Heist bei Bytes availabe steht nun 2! Wenn ich das in die Variable lade, stehen die beiden Werte wunderbar drin aber das ist dann eine 2x1 Matrix. ICH WILL ABER verdammisch nochmal eine 1x1 int16 Zahl haben! Weil die kann ich mit keinem Befehl jetzt bin2dec oder mit mvl2dec in eine Dezimalzahl wandeln!
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 19.08.2011, 19:53
Titel:
|
 |
Was für ein Datentyp ist denn die 2x1 Matrix?
Edit: Typecast noch hinzugefügt
|
|
|
Help! |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.08.2011, 21:24
Titel:
|
 |
Das funktioniert zwar so wie es da steht schon, aber der Datentyp ist ein anderer, wenn ich das mit fread einlesen:
wenn ich mir im Debugmodus die Variable low genauer anschaue, steht da:
low: 1x16 char = 1111111111111110
gibt es da einen cast für?
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 19.08.2011, 23:10
Titel:
|
 |
|
|
Help! |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.08.2011, 10:00
Titel:
|
 |
Nach einem Durchlauf ist das Ergebnis nun 32767 und das ist weit entfernt von -2. Das stimmt noch irgendwas nicht. Die Routine ignoriert, dass die Bitzahl ein Vorzeichen hat!
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 20.08.2011, 11:33
Titel:
|
 |
bin2dec interpretiert low als positive Zahl und int16 gibt keine Überläufe an.
Auf die schnelle ist mir jetzt nur das eingefallen...
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 20.08.2011, 19:38
Titel:
|
 |
Hallo Help,
Zitat: |
Das Einlesen über fread funktioniert super. |
Bitte poste doch Deinen FREAD Befehl. Üblicherweise läßt sich das Format definieren:
Wenn Du aber zwei Bytes in einem Vektor hast, kann TYPECAST dies umformen:
Gruß, Jan
|
|
|
|
|
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.
|
|