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 8

    Das 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.


Log in to reply