-         

Ergebnis 1 bis 6 von 6

Thema: 6bit Ascii durchgängig in Array schreiben

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.04.2005
    Ort
    Hannover
    Beiträge
    190

    6bit Ascii durchgängig in Array schreiben

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo Zusammen,

    wie ich schon in einem anderen Post geschrieben habe will ich eine Struktur mit Variablen unterschiedlicher Bitbreiten per Pointer beschreiben.
    Dabei will ich den Pointer an den Anfang der Struktur zeigen lassen, die Daten kopieren und den Zeiger um ein Byte erhöhen.

    Meine Frage ist nun, kann ich irgendwie geschickt (und möglichst schnell) die 6bit ASCII nahtlos in ein Bytearray schreiben?
    Oder bleibt mit tatsächlich nicht anderes übrig als das Arrays per Hand mit einer ewigen shifterei zu befüllen?

    Was wäre wenn ich einen neuen Typ definiere mit 6bit?
    wird dann ein entsprechender Pointer auch um 6 bit erhöht?

    Vielen Dank!

    MfG,

    Marten83

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.07.2009
    Ort
    Wien
    Beiträge
    131
    nein, pointer zeigen immer mindestens auf bytes, du wirst schon schieben müssen...

    cm.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.04.2005
    Ort
    Hannover
    Beiträge
    190
    Ok, aber nur mal interessehalber....

    Wenn ich das Array oder die Struktur in dem z.B. letzten Segment beschreibe und das dann shifte (nach links), kann man das so bewerkstelligen, dass der überlauf in das niedere Segment des Arrays überläuft?

    Müsste doch eigentlich von sich aus funktionieren, oder?

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.07.2009
    Ort
    Wien
    Beiträge
    131
    wenn ich recht verstehe, was du meinst, ist die antwort "nein". du arbeitest ja auf einem byte (char oder uint8_t), da gibt's keinen zusammenhang mit dem "nachbarbyte" für den compiler.

    du kannst natürlich diesen zusammenhang herstellen, indem du auf int oder long gehst, aber auch da shiften dir die bits ganz links raus und müssen irgendwohin, du hast das problem also nur verschoben und nicht gelöst.

    du kannst dir aber zunutzemachen, daß 4 von deinen 6bit-chars in 3 8bit-chars passen, und immer aus 4 input-chars 3 im output machen. such mal nach code zum base64-dekodieren, da passiert genau das...

    cm.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.04.2005
    Ort
    Hannover
    Beiträge
    190
    Hattest recht, das macht der nicht.

    Aber der Hinweis mit der base64 dekodierung ist echt gut.
    Ich bin dabei das umzusetzten und werde dann (hoffentlich) über den Erfolg berichten.

    Danke für den Hinweis!

    MfG,
    Marten83

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Du könntest aber auch die 3 6-bitter in den ersten 6 bits der 3 Variablen schreiben und dann den restlichen 6-bitter auf die 3x2 freien bits verteilen. Geht vielleicht schneller, als eine base64-Kodierung.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •