bigint



  • da der letzte theard nicht mehr geht ... schreibe ich einen neuen 😃

    mein vorhaben ich möchte einen type implementieren, der folgendes können soll:

    BigInt<128> a = 12345678901234567890123456789;
    

    der type bis jetzt:

    template <UINT Bits> 
    struct bigint 
    { 
         unsigned Zahl : Bits;
    
         bigint(UINT i = 0) { Zahl = i; } // mit default Argument um den default Konstruktor nicht noch schreiben zu müssen
    };
    
    template <UINT Bits> class BigInt
    {
       private:
          unsigned      ueberlauf  : 1;    //Überlauf
          unsigned      Vorzeichen : 1;    //Vorzeichen
          bigint<Bits>  Mantisse;          //Mantisse
    
       public:
          BigInt() : ueberlauf(false)
           {}
    
          BigInt & operator = (const bigint<Bits> &Zahl)
           {
              Mantisse  = bigint<Bits>(Zahl);
              ueberlauf = 0;
            return *this;
           }
    };
    

    wenn ich ein konstruktor für char* schreiben würde, könnte ich denn die variabeln mit

    a = 
    
    12345678901234567890123456789;
    

    füllen?

    leider kenne ich keinen algorithmus zum übertragen von zahlen in bitfelder 😞

    ich muss dazuschreiben, ich habe jetzt zum 4. mal angefangen so einen type zu proggen ...

    1. ich habe komplet mit einem ansistring als zahl gearbeitet ... hat auch alles wunderbar funktioniert ... aber sau, sau

    langsam

    2. ich habe ein array mit ints gemacht und, da der int type 10 stellen hat, aber davon nur 9 nutzbar sind, da die vorderste

    ziffer maximal 2 sein kann, den type in 9-ner blöcke zerhackt ... hat auch wunderprächtig funktioniert ... aber gefiehl mir

    immer noch nicht so recht und war bestimmt auch nicht effizent ... aber egal

    3. ich habe versucht binär zu denken und erstmal nur mit bool gearbeitet ... der type war leider nicht schneller als einer

    der beiden ersten, da es mir nicht möglich war einen 1 bit type u erstellen (oder geht das??)

    4. tja daran arbeite ich ja gerade 😃

    ich muss auch dazu sagen, ich habe wohl schon nahezu das ganze internet durchforstet ... auch viel gefunden und viel neues

    gelernt! und nicht gerade zeit und mühe gescheut ... aber meine 4. variante geht von der überlegung aus keine liste und kein

    array zu machen ... leider weiß ich nicht recht ob das möglich ist ... aber ich habe was interessantes dazu gefunden ...

    darum glaube ich auch das das ganze klappen muss ... ich verstehe den quelltext nur nicht recht ... kann sich das mal -

    jemand klevereres als mir - anschauen und mir so evtl. weiterhelfen?



  • der quelltext von dem oben die rede ist ist hier zu finden ... da es ja nun nicht geht ... den hir rein zu posten ... 😃 😃 😃

    escsender.es.funpic.de/LongInt.h



  • Original-Thread funktioniert wieder, deshalb hier geschlossen.


Anmelden zum Antworten