wer Platz hat, nimmt eine Lookup-Tabelle:
| 1 | static const uint8_t lut = { 0xff, 0xfe, 0xfd, ... }
 | 
| 2 | 
 | 
| 3 | uint8_t bitrev(uint8_t bits) {
 | 
| 4 |     return lut[bits];
 | 
| 5 | }
 | 
... und wer keinen hat, der kann das auch in zwei 4-bit Lookups mit 
entsprechenden Shifts (und dem damit verbundenen Performanceverlust) 
aufteilen.
... und wer einen ColdFire hat, nimmt BITREV, die ARM-Fraktion RBIT...
C - Anfänger schrieb:
> Teo D. schrieb:
>> Beitrag "Re: Bits drehen bzw. spiegeln"
>> for ( i = 0; i < 8; i++ )
>> {
>>    gespiegelt >>= 1;
>>    gespiegelt |= original & 0x80;
>>    original <<= 1;
>> }
>
> Die Lösung ist Prima. Danke!
Die Lösung ist m.E. suboptimal. Wenn "orginal" 0 wird, kann man 
'fertigshiften' und aufhören. Macht man dennoch weiter, erzeugt man nur 
noch unnötig Wärme ;)