Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
Delphi XE2 Professional
|
Welcher Hexwert ist -1
20. Mär 2020, 07:00
Hallo zusammen, in einem meiner älteren Projekt (mit Delphi 2006) werden Daten über eine serielle Schnittstelle empfangen und ausgegeben.
Der User kann dann entscheiden in welcher Darstellung er den Wert sehen möchte.
jetzt hat ein Kollege folgendes bemerkt. Wir empfangen über die Schnittstelle im den Wert $FFFF also 16 gesetzte Bits.
Der hat sich den Wert jetzt als Hexwert ausgeben lassen und -1 erwartet. Heraus kamen jedoch $FFFFFFFF
Auch ein simples
Caption:= IntToHex(-1,2);
liefert $FFFFFFFF.
C# zeigt das gleiche an
Int16 i = -1;
Console.WriteLine(i.ToString("x4"));
Ergibt FFFF
Python und Javascript zeigen jedoch -1 an.
Jetzt habe ich gesehen das in neueren Delphi Versionen die Inttohex Funktion überladen ist.
function IntToHex(Value: Int16): string;
function IntToHex(Value: UInt16): string;
Kann mal einer mit einer neueren Version testen was Delphi hier ausgibt ? Ich habe gestern länger mit dem Kollegen diskutiert und wir sind zu dem Schluß gekommen das wir es zu technisch sehen. $0-$1 ergibt unserer Meinung nach auch -$1 auch wenn es intern vielleicht als $FFFF gespeichert wird
|