Am Saturday 17 May 2003 14:35 schrieb Bodo Kaelberer: [...]
Das ist ja ein nettes Thema fuer Einsteiger (-;
Jep :)
Die Funktion byteToBit() beginnt beim niedrigsten Bit. Willst Du mit dem hoechsten beginnen, dann muss Du als Anfangswert 0x80 statt 0x01 verwenden und zum Schiften >> statt <<.
Ausgabe: 10000000 00001111 00101100
Das ist vom Aufruf her recht komfortabel. Es wirkt etwas umstaendlich, aber dafuer hat es ein stream-artiges Verhalten - Du kannst wirklich Bit fuer Bit lesen. Die Performance kann ich nicht abschaetzen.
Im C Buch von Suse Press steht, das Bitfelder langsamer sind, weil diese intern "shiften", bit Verknüpfungen(& |) sollen sehr performant sein, aber nicht speicherefffizient wie Bitfelder... Meine Vorliebe liegt bei den Bitfeldern, lässt sich im Quelltext viel besser lesen. Die Geschwindigkeit ist für meine User-Space Programme nicht wirklich von Bedeutung, meist muss ich Timer zum 'bremsen' setzen. Die C Variante mag ich am liebsten, weil man die Union super in verschiedene Ranges aufteilen kann und ist sehr übersichtlich in den Quellen! Ciao Andre