Autor | Nachricht |
---|---|
Gesperrt Anmeldedatum: 23.05.2013 Beiträge: 1 | zitieren Hallo, ich habe eine Funktion geschrieben welches aus einem char-array mit 6 Komponenten (also 8*6 Bits insgesamt) jeweils 2 12-Bit-Werte, die hintereinander stehen, zunächst geoordnet zusammenenführen und dann zurückgeben soll:
mit ixKMW=0 funktioniert es, doch mit ixKMW=3 nicht mehr. Woran kann das liegen? mfg lorent |
▲ | pn |
Junior Name: Voller Name als Anagramm: Fitje Weshoms Geschlecht: Fahrzeug: Yamaha YZF R6 Thundercat Anmeldedatum: 15.07.2012 Beiträge: 92 Wohnort: Amberg, Oberpfalz | zitieren Hallo lorent! Vieleicht liegt es daran das du 8-Bit-Werte in unsigned short-Werte, also 16 Bit umwandelst Somit werden die höherwertigen Bits bei einer nach-links-Schiebe-Operation in das höhere Byte, das links steht, rein geschoben. Bei einer Schiebeoperation nach rechts fallen diese Bits raus. Möglicherweise kannst du das mit einer And-Operation verhindern. Beispiel:
Damit werden die höherwertigen Bytes gelöscht und die unsigned short-Werte beinhalten nur unsigned char-Werte vor der Rechenoperation. Probiers mal aus. Guiseppe |
▲ | pn |
Gast | zitieren Mach mit!Wenn Dir die Beiträge zum Thread "bitoperationen in c" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:Registrierte Mitglieder genießen die folgenden Vorteile: ✔ kostenlose Mitgliedschaft ✔ keine Werbung ✔ direkter Austausch mit Gleichgesinnten ✔ neue Fragen stellen oder Diskussionen starten ✔ schnelle Hilfe bei Problemen ✔ Bilder und Videos hochladen ✔ und vieles mehr... |
▲ | |