Home of Gamehacking

Normale Version: Dez2Hex Converter
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
[attachment=1648]
ToolName: Dez2Hex
ToolVersion: 1.0.2.0
AnzahlFunktionen: +2

TOOL .NFO


feedback jeglicher art erwünscht, solange sie nicht gegen die forum regeln verstossen :P

viel spass greetz ABartX

[attachment=1646]
Warum eigentlich nur 2147483647 ?
Da dein Tool nicht zwichen Vorzeichen unterscheidet könntest Du ja auch die vollen 32 Bit (4294967295) berrechnen (FFFFFFFF).
sagen wir so, es wird nicht berechnet sondern "nur" umgewandelt, und das geht nur bis max. 2147483647.

wenn ich das tool einmal update, werde ich das sicher berücksichtigen, und entsprechend ändern Wink


greetz ABartX
Versuch mal den Wert "-1" in das Dezimalfeld zu kopieren...
Oder mal den Wert "FFFFFFFF" ins Hex Feld...

Oder einfach so lösen...
Deckt zudem auch das 64 Bit Spektrum ab...
Wohlgemerkt, auch nur vorzeichenbehaftet...

Delphi Code
IntToHex(StrToInt64(Edit1.Text), 16)



Vorzeichenlos könntest Du das Ganze auch so lösen...

Delphi Code
function Unsigned64(StrValue:String; var uValue:UInt64 ):Boolean;
var
  Start,Base,Digit:Integer;
  n:Integer;
  Nextvalue:UInt64;
begin
  result := false;
  Base := 10;
  Start := 1;
  StrValue := Trim(UpperCase(StrValue));
  if StrValue='' then
    exit;
  if StrValue[1]='-' then
    exit;
  if StrValue[1]='$' then
  begin
    Base := 16;
    Start := 2;
    if Length(StrValue)>17 then // $+16 hex digits = max hex length.
        exit;
  end;
  uValue := 0;
  for n := Start to Length(StrValue) do
  begin
      if Character.IsDigit(StrValue[n]) then
          Digit := Ord(StrValue[n])-Ord('0')
      else if  (Base=16) and (StrValue[n] >= 'A') and (StrValue[n] <= 'F') then
          Digit := (Ord(StrValue[n])-Ord('A'))+10
      else
          exit;// invalid digit.

      Nextvalue := (uValue*base)+digit;
      if (Nextvalue<uValue) then
          exit;
      uValue := Nextvalue;
  end;
  result := true; // success.
end;

function ConvertStr(Value:String):UInt64;
begin
  if not Unsigned64(Value,result) then
    raise EConvertError.Create('Keinen gültigen Wert eingegeben');
end;


Aufgerufen wirds dann z.B. so...

Delphi Code
Edit1.Text:= IntToHex(ConvertStr(Edit1.Text), 8);

hi iNvIcTUs oRCuS,

danke für die idee.
werde mich bei gelegenheit mit dem source code auseinander setzen Smiling


greetz ABartX