AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Negative HEX-Werte übertragen

Offene Frage von "Carsten1234"
Ein Thema von Carsten1234 · begonnen am 12. Mär 2009 · letzter Beitrag vom 12. Mär 2009
 
Carsten1234

Registriert seit: 9. Apr 2008
Ort: Vechelde
178 Beiträge
 
Delphi 8 Professional
 
#1

Negative HEX-Werte übertragen

  Alt 12. Mär 2009, 09:43
Hallo zusammen,

irgendwie wollen die grauen Zellen nicht (mehr) so recht.

Via ApdCOMPort sollen Hex-Daten im Format Hi/Lo übertragen werden. Um dies zu realisieren, wird eine Zahl via HiWord/LoWord zerlegt und mittels Chr und ApdCOMPort.PutString abgeschickt.
Delphi-Quellcode:
var Zahl: SmallInt;
begin
  ApdCOMPort.PutString(Chr(HiWord(Zahl)) + Chr(LoWord(Zahl));
end;
Funktioniert auch wunderprächtig, so lange die Zahl > -1 ist. Um dies zu beheben, setzte ich bewusst einen Breichsüberlauf ein, das ganze sieht dann so aus:
Delphi-Quellcode:
var Zahl: SmallInt;
begin
  if (Zahl < 0) then
    Zahl:= Zahl + $FFFFFFFFFFFFFFFF + 1;
  ApdCOMPort.PutString(Chr(HiWord(Zahl)) + Chr(LoWord(Zahl));
end;
Das funktioniert nun auch mit negativen Zahlen, ABER:
Das geht nur gut, so lange die Zahl -256 nicht unterschreitet.
Daher dachte ich mir:
Delphi-Quellcode:
var Zahl: SmallInt;
begin
  if (Zahl < 0) then
    Zahl:= Zahl + $FFFFFFFFFFFFFFFF + 1 + (((Abs(Min)-1) div 256) * 256);
  ApdCOMPort.PutString(Chr(HiWord(Zahl)) + Chr(LoWord(Zahl));
end;
Aber weder ein '+' noch ein '-' hinter der 1 bringt das gewünschte Ergebnis.
Sowohl bei einem '+' als auch bei einem '-' kommt (z.B.) bei einer -300 eine -44 im Gerät an.

Wo ist der Denkfehler?

Dank vorab und Gruß, Carsten

Mist, falsches Unterforum. Kann man den Beitrag irgendwie verschieben?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz