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:
- Zahl als Betrag (also ohne Vorzeichen)
- Bits invertieren
- 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"