Acceder à chaque bit ...
Cyberbob
Membre
Bonjour tout le monde,
J'ai aujourd'hui une image en bitmap (noir et blanc). Son data est représenté par un unsigned char donc la taille est d'1 octet.
Je cherche à acceder a chaque bit de cet octect.
On m'a donné des détails sur l'opérateur >> mais j'aimerais avoir des informations supplémentaires.
Merci bcp..
Si vous avez pas tout compris, je ferais une explication plus complète.
Au fait, bonne idée ce site, je suis dev Mac depuis 3 ans, et ca fait 6 mois que je suis au Cocoa.
Vive le Mac !
J'ai aujourd'hui une image en bitmap (noir et blanc). Son data est représenté par un unsigned char donc la taille est d'1 octet.
Je cherche à acceder a chaque bit de cet octect.
On m'a donné des détails sur l'opérateur >> mais j'aimerais avoir des informations supplémentaires.
Merci bcp..
Si vous avez pas tout compris, je ferais une explication plus complète.
Au fait, bonne idée ce site, je suis dev Mac depuis 3 ans, et ca fait 6 mois que je suis au Cocoa.
Vive le Mac !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
1) initialiser un masque du genre:
††††††uchar mask =†1;
â€
2) tu prends ensuite ton octet†et tu fais:
†††††bit = octet & mask;
†â€
†††tu obtiens ansi le premier bit de la droite
3) pour avoir le 2 bit de droite:
†††††octet = octet >> 1;
†††††bit = octet & mask;
†à chaque fois que tu fais >> tu décales de 1 bit vers la droite.
Il suffit de faire cela dans une boucle pour récupérer les infos sur tous les bits de ton octet.
Exemple: (qui devrait marcher )
char octet;
char valBit [8];
char mask = 1;
int i;
// faire initialisation de octet
// ,,,
for (i = 0;i < 8;i ++) {
†valBit = octet & mask ? 1 : 0;
†octet = octet >> 1;
}
Comment faire pour avoir le premier bit, apres je suppose que je décale de << 1 ?
Merci bcp pour ta réponse.
Cyberbob
Pour avoir le premier bit à droite, on utilise 1 comme masque car en binaire nous avons: 1= 00000001b
Pour avoir le premier bit de gauche, il nous faut comme masque: 10000000b qui vaut en décimal 128