Datenkonvertierung: int -> binary ( im string ) -> charbuffer



  • Hallo,
    da dies mein erster Eintrag in diesem Forum ist, möchte ich erstmal alle grüßen und etwas Nachsicht erbitten 🙂

    Also ich hab folgendes C++ Problem:

    Ich habe eine Hand voll integer Werte mit verschiedenen längen ( 8 / 16 bit ).
    Nun will ich diese Werte in das Binärformat umwandeln, und zu einem String zusammensetzen. Diesen Schritt muss ich scheinbar gehen, weil ein Wert z.B. nur 6bit einnehmen darf, so dass ich 2 bits vom Teilstring abschneiden muss.
    (Es handelt sich um einen Header, der in ein Usb-Fifo gelegt werden soll)

    Nun habe ich diesen String (wie ich ihn erstelle bin ich mir noch nicht ganz sicher) und will ihn an eine Usb-Schnittstelle übergeben. Diese akzeptiert aber kein binäres Format, sondern hätte die Daten ganz gerne in einem Charbuffer.

    Also frage ich mich, wie ich einen String bestehend aus 0/1 in einen Charbuffer konvertiere. (Ich will natürlich keinen Buffer in dem ich einfach die binären Stellen ablege, sondern natürlich 8 bit zu einem char zusammenfassen.)

    Nun die ganz konkrete Frage: Wie ? Und noch viel schlimmer: Wie das ganze auch noch rückwärts ? ( also den charbuffer zu einem String aus binären Daten. )

    Vielen Dank !

    P.S.
    Da die ganze Geschichte auf LIN und WIN laufen muss, kann ich die MFC leider nicht nutzen.



  • http://mathforum.org/library/drmath/view/54347.html
    schau mal da rein da wird ein long direkt in einen char[] convertiert,
    den in einen string zu verwandeln dürfte wohl kein problem sein
    🙂



  • danach musst du den char[] nur noch in substrings von 8 zeichen gliedern und die
    dann in ner for-scheife zu nem int-wert und den dann an einen char-array darnhängen
    etwa so ungefähr

    for(int y = 1;...) {
    int result;
    for(int i = 7;i>0;i--) {
    result += 2**i * atoi(dein_charArray);
    }
    dein_neuerCharArray[Y]=result;

    und so weiter, wirklich nur ungefähr so 😉


Anmelden zum Antworten