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

Bitweise Operationen

 

LosTk
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 21.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2011, 10:12     Titel: Bitweise Operationen
  Antworten mit Zitat      
Hallo Miteinander,

folgendes Problem:
Ich habe in ein Simulink Modell (siehe Anhang) mit integriertem Stateflow in dem ich verschiedene Bitoperationen durchführen will. (Enable C-Bit Operatioinen ist aktiviert).
Wenn ich die zu Beschreibende Variable auf Datentyp int8 setze gibt es keine Probleme, setze ich ihn allerdings auf uint8 wie ich es will, so kommt die Fehlermeldung die auch bei euch (hoffentlich) auftauchen sollte.
Das Problem das er hat kommt durch die Negierung (~). Lässt man diese Zeile aus, so läuft es Problemlos durch. Wenn ich den Datentyp auf uint32 setze, funktioniert es auch...warum klappt es nicht mit uint8, was mache ich falsch?
Viele Grüße und Dank im vorraus!

test.mdl
 Beschreibung:

Download
 Dateiname:  test.mdl
 Dateigröße:  27.08 KB
 Heruntergeladen:  520 mal
Private Nachricht senden Benutzer-Profile anzeigen


_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 03.02.2011, 11:01     Titel:
  Antworten mit Zitat      
Hallo LosTk,
warum willst du uint8 verwenden wenn du eine negative Zahl bekommst?
Wenn ich das MOdel durchlaufen lasse bekomme ich -11 heraus. uint8 beginnt aber erst bei 0 (http://de.wikipedia.org/wiki/Integer_%28Datentyp%29) und kann die Zahl somit nicht negtaiv darstellen, deswegen wird versucht die Zahl positiv darzustellen mit Hilfe von dem Zweierkomplement glaube ich. (http://de.wikipedia.org/wiki/Zweierkomplement)
Und dabei kommt eine sehr sehr hohe Zahl raus, die du nur mit uint32 darstellen kannst weil dann uint8 nichtmehr ausreicht.
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
LosTk
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 21.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2011, 11:43     Titel:
  Antworten mit Zitat      
Danke für den Hinweis mit dem Zweierkomplement, daran wird es wohl liegen das uint8 nicht ausreicht.
Der Hintergrund ist eigentlich, dass ich keine negative Zahl herausbekommen will sondern lediglich eine Inversion haben will. also aus
00001010 (10) möchte ich mit Hilfe des ~-Operators
11110101 (245) herausbekommen und nicht -11.
Viele Grüßé
Private Nachricht senden Benutzer-Profile anzeigen
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 03.02.2011, 11:56     Titel:
  Antworten mit Zitat      
wenn du bei uint8 bleiben willst kannst du das wie folgt lösen:
Code:


oder einfach den Wert von 255 abziehen.
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
LosTk
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 21.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.02.2011, 11:17     Titel:
  Antworten mit Zitat      
Danke für die Hilfe!
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 - 2024 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.