AGB  ·  Datenschutz  ·  Impressum  







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

Inhalt des Speichers auslesen...

Ein Thema von an_ei · begonnen am 31. Mai 2006 · letzter Beitrag vom 1. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
an_ei

Registriert seit: 2. Mai 2006
Ort: Reppenstedt
6 Beiträge
 
#1

Inhalt des Speichers auslesen...

  Alt 31. Mai 2006, 13:39
Hallo ich habe hier eine Frage. Ich möchte den Inhalt des Speicher wo meine Variable abgelegt ist, in Hexadezimaler Darstellung haben. Ist das nicht toll??
Wie kann ich das realisieren. Die Adresse wo die Variable abgelegt ist, kriege ich durch den Pointer und weiter... Hier ist STOP. Helft mir.



Delphi-Quellcode:
var p:Pointer;
    r:Real;
begin
r:=-32.2;
p:=@r;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Inhalt des Speichers auslesen...

  Alt 31. Mai 2006, 13:42
Hier im Forum suchenIntToHex sollte dir helfen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
an_ei

Registriert seit: 2. Mai 2006
Ort: Reppenstedt
6 Beiträge
 
#3

Re: Inhalt des Speichers auslesen...

  Alt 31. Mai 2006, 14:01
Zitat:
IntToHex sollte dir helfen.
Wie schon die Abkürzung Int sagt, es wird eine Zahl von Typ Integer konvertiert. Ich möchte aber alle Zahlen so konvertiern sei es vom Typ Integer, Real, Extended oder ähnliches.

Aber IntToHex zu nutzen, war meine erste Gedanke bei Natürlichen Zahlen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#4

Re: Inhalt des Speichers auslesen...

  Alt 31. Mai 2006, 14:01
Zitat von Luckie:
Hier im Forum suchenIntToHex sollte dir helfen.
Joo

entweder

Delphi-Quellcode:
Type P: PInt64;

IntToHex(P^, 8);
oder
Delphi-Quellcode:
Type P: Pointer;

IntToHex(PInt64(P)^, 8);
Int64, weil Real = Double und Double = 8 Byte und ebenfalls Int64 = 8 Byte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Inhalt des Speichers auslesen...

  Alt 31. Mai 2006, 14:06
Zitat von an_ei:
Ich möchte aber alle Zahlen so konvertiern sei es vom Typ Integer, Real, Extended oder ähnliches.
Ja und wie liegen sie im Speicher vor? Als Integers eben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

Re: Inhalt des Speichers auslesen...

  Alt 31. Mai 2006, 14:20
Zitat von Luckie:
Ja und wie liegen sie im Speicher vor? Als Integers eben.
Neee neeee ... im Speicher liegen sie Untypisiert rum (ich hab jedenfalls noch nirgends etwas gefunden, was mit sagt, das diese, oder jene 4 Byte ein Integer sein sollen ... obwohl man sich sowas manchma wünschen könnte ) ... was wird aber daraus machen können wäre ein netter Integer, der sich an IntToHex übergeben ließe
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
an_ei

Registriert seit: 2. Mai 2006
Ort: Reppenstedt
6 Beiträge
 
#7

Re: Inhalt des Speichers auslesen...

  Alt 31. Mai 2006, 14:26
Ich möchte die Frage ein bisschen umformulieren

Wie kann ich den Wert der Varibalen die im Speicher lieget als Hex Darstellen
  Mit Zitat antworten Zitat
an_ei

Registriert seit: 2. Mai 2006
Ort: Reppenstedt
6 Beiträge
 
#8

Re: Inhalt des Speichers auslesen...

  Alt 31. Mai 2006, 14:36
Zitat:
Delphi-Quellcode: markieren
Delphi-Quellcode:
Type P: PInt64;

IntToHex(P^, 8);


oder

Delphi-Quellcode:
Delphi-Quellcode: markieren
Type P: Pointer;

IntToHex(PInt64(P)^, 8);
Es funktioniert nicht so wie es sein sollte:

z.B. 46,416 (10) = 42 39 A8 F5 (16) - richtig

bei mir
46,415 (10) = 40 47 35 1E B8 51 EB 85 (16)

  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Inhalt des Speichers auslesen...

  Alt 31. Mai 2006, 14:49
Wie so denn eigentlich immer Speicher? Warum formatierst du die Variable nicht so wie du sie haben willst?

@himitsu: Im Speicher liegen sie nur in der Form von nullen und einsen vor, diese wiederum repräsentieren eine Ganzzahl, wie die Ganzzahl interpretiert wird ist Sache des Programmes. Daher kommen ja die Ungenauigkeiten von Fließkommazahlen, weil sie eben beim Ablegen in den Speicher in Ganzzahlen konvertiert werden müssen. Und eine Ganzzahl kann eine Fließkommazahl eben nicht genau abbilden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#10

Re: Inhalt des Speichers auslesen...

  Alt 31. Mai 2006, 14:51
Zitat von an_ei:
z.B. 46,416 (10) = 42 39 A8 F5 (16)
Wie kommst du bitte darauf?

Wie gesagt kann es erstens schonmal nicht stimmen, da Real aus 8 Bytes besteht (siehe OH) und somit bei dir eh was fehlen würde.


[add]
@Luckie: es ist dennoch kein Integer ... ein Integer ist ja och nur 'ne Art, wie die Daten dort interpretiert werden ... es könnte ja auch ein Cardinal sein, oder ein String, oder ...

Es sind halt einfach nur binäre Daten.

Aber wenn du es willst, dann besteht ein Real natürlich intern aus 2 "Integern" und noch ein paar zusätzlichen Bits
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 10:06 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