Bonjour,
Je travaille actuellement sur un logiciel de charting et je suis tombé sur le code suivant:
où filterSpec et un int. Je ne comprend pas le traitement effectué par cette ligne.Code:int filterType = (filterSpec >> 28) & 0xf;
Version imprimable
Bonjour,
Je travaille actuellement sur un logiciel de charting et je suis tombé sur le code suivant:
où filterSpec et un int. Je ne comprend pas le traitement effectué par cette ligne.Code:int filterType = (filterSpec >> 28) & 0xf;
Salut,
Le ">>" est un "right shift".
C'est un décalage de bits en français, en l'occurence un décalage de 28 bits vers la droite.
En général, ça permet d'avoir les bits de poids fort.
Ensuite, le "&" est un "binary AND", ou "ET binaire". Il prend bit à bit les deux opérandes, et effectue un ET.
"0xf" est une notation hexadécimale, 0x étant le préfixe, et f la valeur. Ici donc il s'agit de 1111 en binaire, donc au final, cette ligne veut dire "récupérer un int qui représente uniquement les 4 bits de poids fort de filterSpec"