bonjour,

je sais qu'il y a bcp d'articles dessus mais j'ai une question.

je sais que pour décaller 2 bits vers la gauche je peux faire:

x << 2

maintenant:

ayant une fonction lirebits(x,4,3) qui retourne les 3 bits des positions 4, 3 et 2 de x, cadrés à droite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
unsigned lirebits(unsigned x, int p, int n)
{
   return ( x >> (p+1-n) ) & ~(~0 << n);
}
1.d'après mon book x >> (p+1-n) déplace les bits sélectionnés à l'etrêmité droite du mot:
==> je ne comprend pas comment.
2. si ~ est le complément cela veut dire ~0 = 1 donc ~(~0 << n) <=> ~(1 << n)
==> je ne comprend pas non plus.

quelqu'un pourrait bien me l'expliquer clairement svp?

Merci de votre aide.

Cdt