Verfasst am: 30.11.2007, 18:59
Titel: Bitwise AND (A & B) funktioniert nicht?
Moin,
ich habe eben versucht, eine bitweise UND-Operation in einer Transition auszuführen:
Code:
{ Extrakt = Wert & Maske; }
Wert == 111010(binär)
Maske == 001000(binär)
Als Ergebnis erhalte ich lediglich eine 1. Ich erwarte in diesem Falle aber den Wert der Maske, also eine 8! Am Datentyp sollte es eigentlich nicht liegen, da alle beteiligten Variablen als uint(32) deklariert sind (Werte und Masken sind in meiner Anwenung 4 Bytes groß). Wenn ich z.B. das Ergebnis der obigen Gleichung noch mit der Maske multipliziere, kommt das raus, was ich erwarte: die Maske selbst, wenn das gesuchte Bit gesetzt ist.
Woran kann das liegen?
Ich habe alternativ mal folgendes probiert:
Code:
{ Extrakt = matlab("bitand", Wert, Maske); }
Aber dabei wurde mit dem Fehler "Stateflow Interface Error: Eval of MATLAB expression 'bitand' in base workspace didn't return anything." abgebrochen.
Danke für Hinweise, aber erstmal ein schönes Wochenende!
Kristian
PS: Das "code"-Tag hier ist ja auch nicht wirklich ausgereift, was? Keine Einrückungen möglich? Ziel verfehlt ...
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
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.