Bitstrom verändern



  • Hallo,
    ich brauche mal etwas Hilfe:
    Es geht darum, dass ich 24 Bytes bits in einem int array data[6] habe.
    Nun muss ich die gesamte Bitfolge untersuchen und falls Bit i z.B. eine "1" ist,
    dieses Bit durch 7 andere Bits (1110010) ersetzen; falls Bit i+1 z.B. eine "0" ist
    durch die 7 Bits (0001101) ersetzen, usw. Im Endeffekt möchte ich die ersetzten Bits
    hintereinander in einem Buffer (int array buffer[42]) stehen haben.
    Ich spreize also die 24 original byte auf 168 byte (Faktor 7).
    Der Funktionsaufruf sollte folgendermaßen aussehen:

    inline void copyBits (int *destination, int dstOffset, int *source, int srcOffset, int srcLenght);
    

    Kann mir jmd. helfen?

    Danke im Voraus.
    PS: Die datentypen können auch verändert werden.



  • Versuch das mal mit std::bitset<32> für jedes einzelne int. Dann entsprechend mit dem Konstruktor(unsigned long) und der Funktion to_ulong() arbeiten.

    Müsste damit schön einfach sein.


Anmelden zum Antworten