AGB  ·  Datenschutz  ·  Impressum  







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

Welcher Hexwert ist -1

Ein Thema von v2afrank · begonnen am 20. Mär 2020 · letzter Beitrag vom 21. Mär 2020
Antwort Antwort
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#1

AW: Welcher Hexwert ist -1

  Alt 21. Mär 2020, 07:40
Ich würde niemals einen Hexstring mit einem Vorzeichen erwarten. So etwas ist sehr ungewöhnlich. Letztendlich wird normalerweise (also in C, Delphi, PHP, ...) die interne Kodierung 1:1 in die Hex-Darstellung überführt. Eine Binärzahl ist aber lediglich eine Abfolge von Nullen und Einsen. Da gibt es kein Vorzeichen, sondern das Vorzeichen wird kodiert. Wenn das Vorzeichen immer in das dritte Bit hinein kodiert werden würde, dann würde ich erwarten, dass das genau so auch in der Hex-Darstellung angezeigt wird. Du könntest dem User auch anbieten, die Zahl als Binär-String oder also Octal-String auszugeben. In keinem dieser Fälle würde ich ein Vorzeichen erwarten, sondern immer die exakte Repräsentation der intern verwendeten Kodierung.
Entweder der User kennt sich mit der Hex-Darstellung aus, dann ist ihm auch bekannt wie eine vorzeichenbehaftete Zahl in der Hexdarstellung aussieht, oder er kennt sich mit der Hex-Darstellung eben nicht aus, dann wird er sich die Zahl auch nicht in der Hex-Darstellung ausgeben lassen.

Das Problem ist die Intthex Funktion bei meinem Delphi 2006. Wie in meinem Anhang zu sehen wird aus einer Zuweisung mit $FFFF nach dem IntToHex ein $FFFFFFFF
Naja, die Funktion heißt ja auch IntToHex und nicht SmallIntToHex. Eine Funktion SmallIntToHex würde selbstverständlich FFFF liefern.

Geändert von samso (21. Mär 2020 um 08:04 Uhr)
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
575 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Welcher Hexwert ist -1

  Alt 21. Mär 2020, 08:57
Ich würde niemals einen Hexstring mit einem Vorzeichen erwarten. So etwas ist sehr ungewöhnlich. Letztendlich wird normalerweise (also in C, Delphi, PHP, ...) die interne Kodierung 1:1 in die Hex-Darstellung überführt. Eine Binärzahl ist aber lediglich eine Abfolge von Nullen und Einsen. Da gibt es kein Vorzeichen, sondern das Vorzeichen wird kodiert. Wenn das Vorzeichen immer in das dritte Bit hinein kodiert werden würde, dann würde ich erwarten, dass das genau so auch in der Hex-Darstellung angezeigt wird. Du könntest dem User auch anbieten, die Zahl als Binär-String oder also Octal-String auszugeben. In keinem dieser Fälle würde ich ein Vorzeichen erwarten, sondern immer die exakte Repräsentation der intern verwendeten Kodierung.
Entweder der User kennt sich mit der Hex-Darstellung aus, dann ist ihm auch bekannt wie eine vorzeichenbehaftete Zahl in der Hexdarstellung aussieht, oder er kennt sich mit der Hex-Darstellung eben nicht aus, dann wird er sich die Zahl auch nicht in der Hex-Darstellung ausgeben lassen.

Das Problem ist die Intthex Funktion bei meinem Delphi 2006. Wie in meinem Anhang zu sehen wird aus einer Zuweisung mit $FFFF nach dem IntToHex ein $FFFFFFFF
Naja, die Funktion heißt ja auch IntToHex und nicht SmallIntToHex. Eine Funktion SmallIntToHex würde selbstverständlich FFFF liefern.
Aber das ist doch genau was ich wissen möchte. In den neueren Delphi Versionen ist inttohex überladen u.a. auch mit Inttohex(Smallint). Kann nicht einmal jemand mit einer neueren Delphi Verison das Testen ?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.779 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Welcher Hexwert ist -1

  Alt 21. Mär 2020, 09:04
Delphi 10.3.3

Delphi-Quellcode:
var
  si: smallInt;
begin
  try
    si := -1;
    writeLn(si);
    writeLn(si.ToHexString);
    writeLn(intToHex(si));
    ReadLn;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
Ausgabe:
-1
FFFF
FFFF

Grüße
Klaus
Klaus

Geändert von Klaus01 (21. Mär 2020 um 09:06 Uhr)
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
575 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Welcher Hexwert ist -1

  Alt 21. Mär 2020, 14:14
Danke. Ist schon interessant was ausgegeben wird.
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:28 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-2025 by Thomas Breitkreuz