Keyboard firmwares for Atmel AVR and Cortex-M
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

1234567891011121314151617181920
  1. #include "util.h"
  2. // bit population
  3. int bitpop(uint8_t bits)
  4. {
  5. int c;
  6. for (c = 0; bits; c++)
  7. bits &= bits -1;
  8. return c;
  9. }
  10. // most significant on-bit
  11. int biton(uint8_t bits)
  12. {
  13. int n = 0;
  14. if (bits >> 4) { bits >>= 4; n += 4;}
  15. if (bits >> 2) { bits >>= 2; n += 2;}
  16. if (bits >> 1) { bits >>= 1; n += 1;}
  17. return n;
  18. }