Masquage

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Masque (homonymie).

Le masquage est une opération de logique utilisée en informatique et en électronique pour sélectionner dans un groupe de bits un sous-ensemble de bits à conserver, ou au contraire à écraser. L'opération de masquage est réalisée à l'aide d'opérations bit à bit pour agir sur la donnée initiale sans avoir à traiter indépendamment chacun de ses bits.

Application d'un masque sur une donnée[modifier | modifier le code]

La réalisation de l'opération de masquage se fait en plusieurs temps : le choix de l'opérateur, la construction du masque et son application.

Choix de l'opérateur[modifier | modifier le code]

Le choix de l'opérateur à utiliser pour appliquer le masque sur la donnée dépend de l'opération à réaliser. Pour cela, on se base sur les particularités des opérateurs logiques. En effet, dans une opération booléenne à deux opérandes, si l'on fixe l'une des deux à une valeur définie, on obtient un résultat ne dépendant que de la donnée.

Par exemple, pour un bit X, si l'on effectue une opération à l'aide de la fonction ET (notée « . »), on obtient :

X . 0 = 0
X . 1 = X

Ainsi, l'opération ET permet de choisir de conserver la valeur de la donnée, en utilisant pour constante la valeur 1, ou de la forcer à 0 en utilisant la valeur 0 comme constante.

À l'inverse, l'opération OU (noté « + ») permet de forcer la valeur à 1 :

X + 0 = X
X + 1 = 1

Construction du masque[modifier | modifier le code]

En se basant sur le particularités des opérateurs vus précédemment, on va construire un masque de même taille que la donnée, et comportant des 0 ou des 1 pour chaque bit respectif en fonction de l'opération que l'on veut lui faire subir. Ainsi, si l'objectif est de sélectionner un ensemble de bits à conserver dans un mot, en forçant les autres à zéro, on va construire un masque de même taille que le mot, comportant des 1 à la même position que les bits à conserver et des zéro ailleurs. Pour un forçage à 1, on procèdera dans le sens inverse.

Application du masque[modifier | modifier le code]

Enfin, l'application du masque consiste à poser l'équation mathématique correspondant à l'application du masque sur la donnée.

Exemple[modifier | modifier le code]

Dans l'exemple suivant, on désire conserver les deux bits de poids faible et forcer la valeur des autres à zéro dans un mot de 8 bits. On Choisit donc l'opérateur ET. Puis on choisit un masque comportant des 1 à la même position que les bits à conserver et des zéro ailleurs :

0000 0011 (Soit 0x03 en notation hexadécimale)

Ainsi, si la donnée est la suivante :

0110 1010 (= 0x6C)

L'application du calcul donnera :

  0110 1010
. 0000 0011
-----------
  0000 0010

On a donc bien conservé la valeur des deux derniers bits tout en forçant la valeur des autres à 0.

Implémentation[modifier | modifier le code]

En informatique, on utilisera un langage de programmation pour appliquer le calcul. En reprenant l'exemple précédent, on obtient le code suivant sachant que l'opération ET s'écrit sous la forme ``& :

unsigned int donnee = 0x6C;
unsigned int resultat = donnee & 0x03;