Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Double in zwei Integer (https://www.delphipraxis.net/11883-double-zwei-integer.html)

braingrenade 15. Nov 2003 22:49


Double in zwei Integer
 
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?

Chewie 15. Nov 2003 22:57

Re: Double in zwei Integer
 
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.

braingrenade 15. Nov 2003 22:59

Re: Double in zwei Integer
 
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.

Chewie 15. Nov 2003 23:03

Re: Double in zwei Integer
 
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;

braingrenade 15. Nov 2003 23:19

Re: Double in zwei Integer
 
Optimal , Funktioniert !

Danke !!

Christian Seehase 16. Nov 2003 00:23

Re: Double in zwei Integer
 
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;

braingrenade 16. Nov 2003 12:23

Re: Double in zwei Integer
 
Das so einfach ist hätt ich jetzt nich gedacht!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 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