AGB  ·  Datenschutz  ·  Impressum  







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

Double in zwei Integer

Ein Thema von braingrenade · begonnen am 15. Nov 2003 · letzter Beitrag vom 16. Nov 2003
Antwort Antwort
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#1

Double in zwei Integer

  Alt 15. Nov 2003, 23:49
Moin Leute !

Hab wieder mal ein Problem :

Wie kann ich eine Double Variable (8 byte also 64 bit) in zwei Integer werte aufteilen?
Also so das ich die ersten 32 bit in einen Integer speichere und dann die letzten 32 bit in einen anderen Integer ?

Geht das überhaupt?
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Double in zwei Integer

  Alt 15. Nov 2003, 23:57
Du könntest den Speicherinhalt eines Doubles natürlich in zwei Integer aufteilen. Die Frage ist nur, ob es sinnvoll ist. Denn ein Double hat eine ganz andere Zahlendarstellung als ein Integer.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#3

Re: Double in zwei Integer

  Alt 15. Nov 2003, 23:59
Jo , genau das will ich !
Das am Eende was völlig komisches dabei rauskommt ist schon ok , denn ich brauche das ganze für eine Verschlüsselung.
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Double in zwei Integer

  Alt 16. Nov 2003, 00:03
Wenn du meinst...
Das sollte so gehen:

Delphi-Quellcode:
var
  i1, i2: Integer;
  pi: PInteger;
  d: Double;
begin
  d := 17.0;
  pi := PInteger(@d);
  i1 := pi^;
  pI := PInteger(Pointer(Integer(@d)+4));
  i2 := pi^;
end;
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#5

Re: Double in zwei Integer

  Alt 16. Nov 2003, 00:19
Optimal , Funktioniert !

Danke !!
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Double in zwei Integer

  Alt 16. Nov 2003, 01:23
Moin Zusammen,

nur der Vollständigkeit halber mal die Version mit varianten Teilen in Records:

Delphi-Quellcode:
type
  TSplitDouble = record
    case boolean of
      true : (dblValue : Double);
      false : (iHigh : integer;
               iLow : integer;);
  end;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var
  sdWork : TSplitDouble;

begin
  sdWork.dblValue := 129090.0075709;
  ShowMessage(IntToStr(sdWork.iHigh)+#13#10+IntToStr(sdWork.iLow));
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#7

Re: Double in zwei Integer

  Alt 16. Nov 2003, 13:23
Das so einfach ist hätt ich jetzt nich gedacht!
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  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 16:20 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