DB Wert mit Hex Wert Vergleichen?

ibanesch

Level-1
Beiträge
18
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte einen Hex Wert (0x40D5) mit einem Wert in einem DB Vergleichen ob beide Werte gleich sind.

Ich dachte ich nehme den ==I Vergleicher.

Aber ich kann irgendwie den Hex Wert nicht als In Parameter angeben, ich habe W#16#40D5 geschrieben.
Aber das scheint falsch zu sein (angabe bleibt rot).

Kann mir jemand weiter Helfen, hab grad kein Plan wo der Fehler is.
 
Hallo,
das liegt daran, dass du mit "==I" Integerwerte vergleichst. Das geht in AWL zu machen obwohl du hier ja einen WORD-Wert vorgibst. In KOP und/oder FUP geht das nicht (die Typen passen nicht).

Gruß
Larry
 
danke, also der vergleich funktioniert obwohl die datentypen nicht passen oder? wenn ichs in awl schreibe mekert step 7 zumindest nicht.
 
Geht aber nur mit ==I zu vergleichen!

<I, >I, ... u.s.w. sind mit vorsicht zu genießen, denn wenn Du einen Hex-Wert mit "F000" an erster Stelle hast, dann ist das im INT-Format eine negative Zahl!

Word: 0 - 65536
INT: -32768 - 32767
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Geht aber nur mit ==I zu vergleichen!

<I, >I, ... u.s.w. sind mit vorsicht zu genießen, denn wenn Du einen Hex-Wert mit "F000" an erster Stelle hast, dann ist das im INT-Format eine negative Zahl!

Word: 0 - 65536
INT: -32768 - 32767

Genau, um es noch einmal anders zu sagen, Hex-Zahlen werden beim Vergleichen in Step7 als Int-Zahlen interpretiert! Und da bei Int-Zahlen durch die Zweierkomplementdarstellung negative Werte als große Hex-Zahlen (<=8000 Hex oder 32767 Int) dargestellt werden, würde der Vergleicher eine Hexzahl, die über dem pos. Int-Bereich (8000 Hex oder 32767 Int) liegt als negative Zahl interpretieren und ein falsches Vergleichsergebnis ausgeben.
 
hm das is naja schlecht. wie vergleiche ich dann hex zahlen? wenn ich z.b wissen will ob der wert FFFF ist.
Byte weiße? oder wie geht das dann?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Z.B. durch "Umrechnen" in int, 0xFFFF = -1. Hex ist nur eine andere Darstellung, kein anderer Inhalt!
Zum Umrechnen kann ich den Windows-Taschenrechner unter Zubehör empfehlen.
Bei Vergleichen auf <, <=, >, >= muss natürlich etwas aufgepasst werden.
Die grundsätzliche Frage lautet hier nämlich: vergleiche ich vorzeichenbehaftete Werte oder vorzeichenlose Werte.
 
Wenn du weißt, das die Werte vorzeichenlos sind, kannst du die Worte (2Byte) in Doppelworte (4Byte) transferieren und dort vergleichen. bei <D gilt zwar im Prinzip das Gleiche, wie bei den <I, aber wenn du einen Wortwert in ein Doppelwort kopierst, dann sind ja die beiden höheren Bytes automatisch 0 und man kommt gar nicht in den negativen Bereich.
 
Zurück
Oben