Hallo ich möchte verstehen wie in C bzw. der Arduino IDE auf Bitebene manipuliert und gerechnet wird. Während das setzen, löschen, toggeln einzelner Bits einfach ist und an sehr vielen Stellen auch gut nachvollziehbar erklärt oder sogar als Video gezeigt wird, habe ich jetzt noch kein gutes deutschsprachige Tutorial gefunden was die mittels Bitshifting mögliche Rechenmöglichkeiten und Vorteile erklärt. Mein Interessenbereich liegt hauptsächlich in der Praktischen Anwendung von 8 Bit µC (AVR) und der Sprache C bzw. der Arduino IDE. http://playground.arduino.cc/Code/BitMath ist eigentlich schon ein guter Einstieg - aber eben in englisch was bei diesen Thema einen Anfänger die Sache leider erschwert. Optimal wäre ein deutschsprachiges Videotutorial mit vielen Praxisbeispielen. Wie geschrieben: Ich suche kein Mathematiktutorial über Boolsche Algebra oder Bitmanipulation in allgemeinen sondern ein Praxistutorial was sich schwerpunktmäßig auf C (Arduino IDE) und 8 Bit µC (AVR) bezieht. Zweier
Zweier schrieb: > habe ich jetzt noch kein gutes deutschsprachige > Tutorial gefunden was die mittels Bitshifting mögliche > Rechenmöglichkeiten und Vorteile erklärt. Überlege dir einmal, was du machst wenn du eine Zahl mit dem Faktor 10 multiplizierst bzw. mit dem Faktor 10 dividierst. Das selbe ist Bitshift nur dass es im Computer idR zur Basis 2 ist und nicht zur Basis 10. Warum muss es eigentlich genau die Arduino IDE sein? Kein Interesse auf C zu wechseln? Damit könntest du den Mikrocontroller vollständig nutzen wie es dir beliebt…natürlich in den Grenzen die das Datenblatt einem sagt. Die Arduino IDE schränkt da noch etwas mehr ein afaik.
Michael K. schrieb: > Die Arduino IDE schränkt da noch etwas mehr ein afaik. Das ist mir neu! Es wird die AVR Toolchain verwendet. so, oder so.... Die ganzen Arduino Libs kann man nutzen, muss man aber nicht.
Peter schrieb: > Michael K. schrieb: >> Kein Interesse auf >> C zu wechseln? > > C ist die Standardsprache beim Arduino. Ich dachte es sei C++ in Kombination mit einigen sehr schwergewichtigen Bibliotheken.
Wahrscheinlich werde ich jetzt für diese Aussage gesteinigt, aber ich sags trotzdem: C nimmt man, damit man sich eben nicht mehr um so "Low-Level-Zeug" wie Rechnen per Bitmanipulationen kümmern muss. Man schreibt es dann im Code einfach so hin wie man es haben möchte z.B. "a = b * 4" und überlässt das Optimieren dem Compiler (in der Hoffnung, er möge dann selber die Multiplikation mit 4 durch eine entsprechende Shiftoperation ersetzen). Der Vorteil liegt darin, dass der Code portabel wird und eher die Chance besteht, dass er auch auf einer anderen Plattform läuft, ohne dass man alles nochmals neu programmieren muss.
:
Bearbeitet durch User
Johnny B. schrieb: > Wahrscheinlich werde ich jetzt für diese Aussage gesteinigt, aber ich > sags trotzdem: > C nimmt man, damit man sich eben nicht mehr um so "Low-Level-Zeug" wie > Rechnen per Bitmanipulationen kümmern muss. Man schreibt es dann im Code > einfach so hin wie man es haben möchte z.B. "a = b * 4" und überlässt > das Optimieren dem Compiler (in der Hoffnung, er möge dann selber die > Multiplikation mit 4 durch eine entsprechende Shiftoperation ersetzen). > > Der Vorteil liegt darin, dass der Code portabel wird und eher die Chance > besteht, dass er auch auf einer anderen Plattform läuft, ohne dass man > alles nochmals neu programmieren muss. Totaler Humbug. Die ganze Aussage. Bitmanipulationen sind nötig, auch und gerade in C, und haben mit (fehlender) Portabilität wenig zu tun. Eine Bitoperation ist auch nichts anders als die Multiplikation in deinem Beispiel. Beides sind High-Level Anweisungen welche der Compiler optimieren kann und wird.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.