![]() |
Mal 2(langzahlen)???
abend,
ich hab mir das grundgerüst für rechnen mit langen zahlen geschrieben(also langzahlarithmetik; die ziffern der zahlen werden in arrays gespeichert; +, -, div 2 und anzeigen kann ich bereits) ich möchte nun eine solche zahl mit2 multiplizieren: division durch 2 realisiere ich so:
Delphi-Quellcode:
wie kann ich nun die multiplikation mit 2 durchführen?
...
type ziffern = array[0..100] of Word; ... function durch2(zahl:ziffern): ziffern; var hilf, uebertrag, i: integer; begin for i := 100 to 0 do begin hilf := a[i] + (10 * uebertrag); //10 = die basis uebertrag := a[i] and 1; a[i] := hilf shr 1; end; end; (ich weiss nur, das es mit shl durchgeführt werden muss!!!) wer die funktion oben nich ganz versteht, dem kann ich auch noch ein bsp geben(bin jetz nur zu faul zu schreiben :-) ) danke für hilfe, heiopei [edit=sakura] [delphi]-Tags eingefügt. Mfg, sakura[/edit] [edit=Admin]BBCodes aktiviert. :mrgreen: Mfg, Daniel[/edit] |
Re: Mal 2(langzahlen)???
:hi:
Als Alternative : Zahl * 2 = Zahl + Zahl mfg Tobias |
Re: Mal 2(langzahlen)???
hallo mirlin,
diese lösung hatte ich mir auch schon überlegt!! aber es muss irgendwie auch mit bitweisem verschieben und übertrag gehn, da soweit ich weiss, dies schneller geht. es muss doch irgendeine umkehrfunktion führ die oben beschriebene division durch 2 geben!! danke für hilfe heiopei |
Re: Mal 2(langzahlen)???
Eine Verschiebung um 1 Bit nach rechts entspricht einer Multiplikation mit 2.
|
Re: Mal 2(langzahlen)???
hallo chewie,
ich weiss(geht mit shl 1)aber da is kein übertrag bei!!! tschüss, heiopei |
Re: Mal 2(langzahlen)???
Ich weiß ja nicht wozu du das brauchst, aber wenn Du wirklich mit "großen" Zahlen rechnen willst dann ist dein Ansatz
in my mind schlecht gewählt! Du kannst ja am Ende nur mit 2 multiplizieren und dividieren! Wenn es mit jeder Zahl gehen soll, dann musst du die schriftliche multiplikation und Division nachbauen und das ganze als "TextFile" deklarieren! Aber vielleicht reicht ja auch die 2... Mehr weiß der Rechner eh nicht... :-D |
Re: Mal 2(langzahlen)???
hallo,
bis jetzt benötige ich nicht mehr als *2 und /2. außerdem bin ich schon fast fertig mit durch mal rechnen allgemein!!! aber *2 muss irgendiwe schneller sein tschüss heiopei |
Re: Mal 2(langzahlen)???
:thuimb: Das ist natürlich noch besser...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz