Langzahlenmultiplikation
-
Hallo an alle!
Ich bin noch ein relativer Anfänger im Bereich des Programmierens, doch ich muss mit C++ eine Langzahlenmultiplikation programmieren!
Der Algorithmus dafür ist die Schulbuch-Methode
(http://www.iaik.tugraz.at/research/publications/2005/CHES2005_EES_Slides.pdf ,Seite7)Das sind die Definitionen(war vorgegeben)
// type definition of word-level datatype
typedef unsigned long bigIntType;
//typedef unsigned long long bigIntType;
#define BIG_INTEGER_NUM_BYTES 4
#define BIG_INTEGER_NUM_NIBBLES 8
#define BIG_INTEGER_NUM_BITS 32// Number of words concatenated to BigInteger
#define BIG_INTEGER_MAX_WORDS 8Das ist der bis jetzt implementierte Code: (value und multiplier.value sind die beiden Zahlen)
int tempResult[BIG_INTEGER_MAX_WORDS]={0}, mcarry;
int multi1[8]= {value[0] & 0xFFFF, value[0] >> 16 & 0xFFFF};
int multi2[8]= {multiplier.value[0]&0xFFFF, multiplier.value[0] >> 16 &0xFFFF};
int val;
for(int i = 0; i < BIG_INTEGER_MAX_WORDS; i++)
{
mcarry = 0;
for(int j = 0; j < BIG_INTEGER_MAX_WORDS; j++)
{val = (multi1[i] * multi2[j]) + tempResult[i+j] + mcarry;
tempResult[i+j] = val % 256;
mcarry = val/256;
}tempResult[BIG_INTEGER_MAX_WORDS+i] = mcarry;
}return *this;
jo, nur irgendwie funktioniert das ganze nicht, er rechnet nicht wirklich wie ich will
wäre schön wenn jemand nen Vorschlag hat, probier da jetzt schon länger herum!
-
Das solltest Du in einem "Hausaufgabenlösungs-Forum" posten... mit MFC hat es auf jeden Fall nix zu tun.
-
Dieser Thread wurde von Moderator/in dEUs aus dem Forum MFC (Visual C++) in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.