Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#11

Re: HEX-string (Zweierkomplement) in Dezimal-string wandeln

  Alt 23. Mär 2006, 11:05
Zitat von MarLe:
... Hast du vielleicht auch noch gleich eine Lösung für den umgekehrten Weg,
von Dezimal nach Hex im Zweierkomplement?
Der Weg von Dez -> Zweierkompliment ist ja:
  1. Zahl als Betrag (also ohne Vorzeichen)
  2. Bits invertieren
  3. Zahl um 1 erhöhen

Ergo müsste es so sein:
Delphi-Quellcode:
procedure TDemoForm.Button2Click(Sender: TObject);
var
  sHex: string;
  iDez: integer;
  neg : boolean;
begin
  iDez := -27680;
  neg := iDez < 0;
  if (neg) then
   iDez := iDez * -1; // In Betrag wandeln
  iDez := iDez XOR $FFFF; // Invertieren
  INC(iDez); // Um 1 erhöhen.
  sHex := IntToHex(iDez,4);
  showmessage(sHex);
end;
Das ganze kann/sollte man natürlich noch etwas opimieren. Ich wollte nur die einzelnen schritte zeigen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat