
Zitat von
PicNick
(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++)
Lesezeichen