- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 Forum

Grundkurs
  »Introduktion
  »Snabbguide
  »Komponenter
  »Händelser
  »Strängar
  »Räkna med Delphi   »Egna typer
  »Selektion
  »Iteration
  »Menyer
  »Funktioner
  »Arraystrukturer

Tips & Tricks
  »Nya tips
  »Blandat
  »Databaser
  »Filer
  »Forms
  »Grafik
  »Internet
  »Komponenter
  »Matematik
  »Multimedia
  »Objekt/ActiveX
  »Skrivare
  »Strängar
  »System
  »Mest lästa tips

Artiklar
  »Delphi och ADO
  »Bygga en DLL
  »Skapa en enkel rapport
  »Hantera registret
  »Enheter, units
  »Klassen TCanvas
  »Använd LookUp Controls

 Nya tips
 Lägg till tips
 Delphilänkar
 Gästbok

 

Multiplicera mycket stora heltal Kategori: Matematik
Inlagt: 2004-04-19
Läst: 1366
Inlagt av: Staffan Berg
Beskrivning
Detta intressanta räkneexempel multiplicerar väldigt stora integer-värden. 
Kod
type  
 IntNo = record  
  Low32, Hi32: DWORD;  
 end;  
 
function Multiply(p, q: DWORD): IntNo;  
var  
 x: IntNo;  
begin  
 asm  
  MOV EAX,[p]  
  MUL [q]  
  MOV [x.Low32],EAX  
  MOV [x.Hi32],EDX  
 end;  
 Result := x  
end;  
 
 
// Testa funktion här: 
 
var  
 r: IntNo;  
begin  
  r := Multiply(40000000, 80000000);  
  ShowMessage(IntToStr(r.Hi32) + ', ' + IntToStr(r.low32))  
end;  
 

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -