Comment extraire des bits spécifiques d'un nombre en C?

J'ai besoin d'extraire une partie spécifique (pas de bits) d'un short type de données en C.

Par Exemple j'ai un fichier binaire de 52504 comme 11001101000 11000 et je veux d'Abord 6 ( à PARTIR de LSB --> MSB-je.e 011000 décimal 24) bits et de repos de 10 bits ( 11001101000 décimal 820).

De même je veux que cette fonction soit trop généralisé pour extraire spécifique pas de bits de donnée "début" et "fin" (j'.e morceaux de bits équivalent avec une certaine valeur décimale).

J'ai vérifié d'autres posts, mais ceux qui n'étaient pas utiles, car les fonctions ne sont pas trop généralisée.

J'ai besoin de quelque chose qui peut travailler pour short type de données de C.

Modifier

Je vais avoir le bref tableau de la taille de 2048 octets. Où chaque Pixel est de 10 bits. Donc, mon 16 bits composé chaque octet occupant peu de temps de 2 pixels de données, parfois 3 pixels de données.

Comme

( PIXEL : 0,1 )
10 BITS + 6 BITS

ensuite ( en PIXELS : 1,2,3 )
4 BITS ( 1er pixels bits restants ) + 10 BITS + 2 BITS.

et ainsi de suite ..ce modèle continue ...
Donc, tout ce que je veux extraire chaque pixel et de faire un tableau d'ensemble de chaque pixels à être occupé entièrement en ENTIER d'OCTETS ( 16 bits)..
1 octet doit contenir 1 les DONNÉES de PIXEL, l'autre OCTET devrait contenir d'autres valeur de PIXEL en entier de 16 bits et ainsi de suite ainsi de suite.

source d'informationauteur Usman | 2012-04-10