operationen auf arrays - Bitte Tipps



  • Hallo,

    ich muss für eine microcontroller Implemntierung (in C) mit einem 40 Bit counter umgehen. Der Compiler kann kennt jedoch nur:
    long = 32 Bit
    int = 16 Bit
    char = 8 Bit.

    Momentan speichere ich die 40 Bits in einem
    unsigned char counterArray[5]

    Allerdings muss ich auf diesen Counter operationen wie + - * / ausführen.
    Kann man irgendwie solche Arrays verrechnen?

    Also zB

    char A[5];// in A und B stehen die Bytes eines 40Bit-counters
    char B[5];// mit A[4] = höchstwertigstes Byte und A[0] = niederwertigstes Byte
    ...
    char C[5];

    C = A-B;

    Kann mir jemand mal Tipps geben, wie ich am besten da mit ner 40Bit Zahl umgehen sollte?



  • Ich würde als erste Idee zwei long's nehmen, und den etwaigen Überstand selbst übertragen. So muss man zwar auch alles neu definieren, aber das wäre mir noch lieber als fünf char's.



  • Hast du dir mal Bignum-Bibliotheken angeschaut?
    Die basieren auf Strings und beherrschen normalerweise die 4 Grundrechenarten.

    http://spinning-yarns.org/michael/mpi


Log in to reply