Masquage

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.
Sommaire
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 les 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; celui-ci 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 (= 0x6A)
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 = 0x6A; unsigned int resultat = donnee & 0x03;