Zitat Zitat von PicNick Beitrag anzeigen
(is aber auch noch nicht das effizienteste)
Vor allem ist es falsch. Es testet ja nur die unteren 5 Bits.
Code:
for (uint16_t i = 1;  i; i <<= 1)
Und falls im weiteren Code die Position als Bitnummer benötigt wird:
Code:
for (uint16_t i = 1, uint8_t pos = 0;  i; i <<= 1, pos++)