/* numara cati biti de 1 sunt in reprezentarea binara a unui numar */ #include void main(void) { int n; /* numarul de testat */ unsigned cnt = 0; /* numara cati biti sunt de 1 */ printf("introduceti numarul de testat "); scanf("%d", &n); while (n) { /* cat timp numarul e nenul, mai are biti de 1 */ cnt += n < 0; /* n < 0 e 1 (adevarat) daca bitul de semn e 1 * deci se incrementeaza cnt, altfel nu */ n <<= 1; /* eliminam bitul de semn, deplasam cei ramasi */ } /* urmatorul bit e pe locul celui de semn, continua */ printf("numarul are %d biti de 1\n", cnt); }