AGB  ·  Datenschutz  ·  Impressum  







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

einen Hexwert umrechnen in einen Dezimalwert

Ein Thema von juergen · begonnen am 27. Feb 2014 · letzter Beitrag vom 28. Feb 2014
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#1

einen Hexwert umrechnen in einen Dezimalwert

  Alt 27. Feb 2014, 18:59
Hallo zusammen,

ich bin mir ziemlich sicher dass es eine fertige Funktion gibt, finde diese nur nicht.
Ich habe in einem String einen Hexwert. Diesen muss ich umrechnen in einen Dezimalwert.
Weiß da jemand Rat?

Vielen Dank schon mal vorab!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: einen Hexwert umrechnen in einen Dezimalwert

  Alt 27. Feb 2014, 19:28
Hallo,

Zitat:
ich bin mir ziemlich sicher dass es eine fertige Funktion gibt, finde diese nur nicht [...]
Schau mal da: StrToInt

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: einen Hexwert umrechnen in einen Dezimalwert

  Alt 27. Feb 2014, 20:16
Hallo Volker,
vielen Dank für deine Hilfe!
Da wäre ich jetzt nie drauf gekommen dass StrToInt() auch für Hexwerte gilt, aber in der Hilfe stehts so.

Jetzt hab ich noch ein Problem:
Ich muss 2 8stellige Hexwerte addieren...
Kann mir hierbei noch jenmand helfen?

Vielen Dank!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#4

AW: einen Hexwert umrechnen in einen Dezimalwert

  Alt 27. Feb 2014, 20:21

Jetzt hab ich noch ein Problem:
Ich muss 2 8stellige Hexwerte addieren...
Kann mir hierbei noch jenmand helfen?

Vielen Dank!
Dann wandle die Werte in Integer, addiere diese und wandle wieder zurück.
Meines Wissens musst du nur ein "$" vor den Hexwert setzen, damit dieser umgerechnet wird.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#5

AW: einen Hexwert umrechnen in einen Dezimalwert

  Alt 27. Feb 2014, 21:05
Hallo,

Zitat:
Ich muss 2 8stellige Hexwerte addieren [...]
Und was ist da jetzt genau das Problem? Falsches Ergebnis, weil die Summe den Wertebereich eines Int64 sprengt oder suchst Du IntToHex

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: einen Hexwert umrechnen in einen Dezimalwert

  Alt 27. Feb 2014, 21:15
Hallo Matthias,

danke für deinen Hinweise!

Ich habe es folgendermaßen versucht:

s := IntToStr((StrToInt('$' + (RightStr(sl_Quelle.Strings[0], 8)))) + (StrToInt('$' + ('00' + LeftStr(sl_Quelle.Strings[0], 6)))));
Zur Veranschaulichung ein Beispiel:
Hexwert 1 = 55 22 8D 04
Hexwert 2 = 00 80 2A D8

Diese beiden Werte addiert sollen
52 A2 B7 DC
ergeben.

Das muss ich dann noch in Dezimal umwandeln. Das Endergebnis soll
1386395612
sein.

@Volker,
ich habe natürlich einiges versucht, da gab es auch Wertebereichsverletzungen beim Int64
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#7

AW: einen Hexwert umrechnen in einen Dezimalwert

  Alt 27. Feb 2014, 22:27
Zur Veranschaulichung ein Beispiel:
Hexwert 1 = 55 22 8D 04
Hexwert 2 = 00 80 2A D8

Diese beiden Werte addiert sollen
52 A2 B7 DC
ergeben.

Das muss ich dann noch in Dezimal umwandeln. Das Endergebnis soll
1386395612
sein.
Laut Rechner in Windows ergibt das Dezimal aber 1436727260???
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#8

AW: einen Hexwert umrechnen in einen Dezimalwert

  Alt 27. Feb 2014, 22:31
Mal auf einen Button gelegt
Delphi-Quellcode:


procedure TForm1.Button1Click(Sender: TObject);
begin
 Button1.Caption := IntToStr(StrToInt('$55228D04') + StrToInt('$00802AD8'));
end;
Oder willst du mit Signed Werten arbeiten?
Miniaturansicht angehängter Grafiken
hex.png  
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#9

AW: einen Hexwert umrechnen in einen Dezimalwert

  Alt 27. Feb 2014, 22:34
Hallo,

der Code hat nichts mit dem Beispiel zu tun. Wenn in sl_Quelle.Strings[0] 55228D04 steht, dann rechnet Dein Code $55228D04 + $0055228D, denn Du greifst doch auf den gleichen String zu (sl_Quelle.Strings[0])
Delphi-Quellcode:
ShowMessage (IntToStr (StrToInt ('$55228D04') + StrToInt ('$00802AD8'))); // Korrektes Ergebnis: 1436727260 [52A2B7DC]Hex
ShowMessage (IntToStr (StrToInt ('$FFFFFFFF') + StrToInt ('$FFFFFFFF'))); // Falsche Ergebnis: -2
ShowMessage (IntToStr (StrToInt64 ('$FFFFFFFF') + StrToInt64 ('$FFFFFFFF'))); // Korrektes Ergebnis: 8589934590 [1FFFFFFFE]Hex
Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: einen Hexwert umrechnen in einen Dezimalwert

  Alt 27. Feb 2014, 23:08
Hallo zusammen ,
danke für das rege Interesse!

@zeras
Mit dem Windowsrechner geht das wohl deswegen nicht, weil man bei dem 2. Wert keine führenden Nullen eingeben kann.

Leider weiß ich nicht was "Signed Werte" sind.

@ Volker
Ich greife auf einen Teil eines größeren Strings zu! Zum einen die letzten 8 Zeichen und zum anderen 2führende Nullen und die ersten 6 Zeichen des Strings.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz