Sa se scrie o functie getbits(x,p,n) care returneaza, aliniat la dreapta, un câmp de n biti dintr-un întreg fara semn x, începând cu pozitia p a lui x, dupa cum se arata în figura 3.1. Se considera ca bitul cel mai putin semnificativ al lui x are pozitia 0.
#include <stdio.h> unsigned getbits(unsigned x, int p, int n) { return (x >> (p+1-n)) & ~(~0 << n); } void main(void) { unsigned x; int p=6,n=3; printf("Numar initial: "); scanf("%u", &x); printf("Valoarea extrasa: %u\n", getbits(x,p,n)); }
Se observa ca în functia getbits: