Aller au contenu principal

Qu'est-ce que la fonction BITET ?

Définition
La fonction BITET effectue l'opération ET logique (AND) bit à bit entre deux entiers positifs. Elle retourne un entier dont chaque bit vaut 1 uniquement si les bits correspondants des deux arguments valent tous les deux 1.

BITET (BITAND en anglais) te sert quand des informations sont empilées dans un seul entier (droits, options, flags) et que tu dois vérifier ou isoler ce que deux valeurs ont en commun, bit par bit, sans les décoder à la main.

Concrètement, c'est elle qui isole des permissions encodées dans un entier, vérifie si un flag spécifique est activé dans un système de configuration, ou extrait des informations d'un champ binaire importé depuis une base de données ou un système embarqué.

Syntaxe

=BITET(nombre1; nombre2)

Clique sur un argument pour aller à son explication.

Les deux arguments doivent être des entiers positifs ou nuls compris entre 0 et 281 474 976 710 655 (soit 2^48 - 1). Tout nombre négatif, décimal ou supérieur à cette limite provoque l'erreur #NOMBRE!.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction BITET

BITET prend deux nombres et les met côte à côte au niveau binaire : peu importe lequel tu places en premier, le résultat est le même puisqu'un bit ne vaut 1 que si les deux bits en face valent 1. La comparaison part toujours de la droite, du bit de poids faible vers la gauche.

Les deux arguments sont obligatoires : il n'y a pas de version à un seul nombre, et chacun doit rester un entier positif pour qu'Excel accepte de le convertir en binaire.

1

nombre1

: le premier nombre entier à comparer au niveau binaire

Il doit être un entier positif ou nul compris entre 0 et 281 474 976 710 655 (soit 2^48 - 1). Excel convertit automatiquement ce nombre en binaire pour effectuer la comparaison bit à bit.

Par exemple, si tu passes 12 comme nombre1, Excel le convertit en binaire : 1100. Chaque bit de cette représentation sera ensuite comparé avec les bits correspondants du nombre2.

2

nombre2

: le deuxième nombre entier à comparer au niveau binaire

Comme nombre1, il doit être un entier positif ou nul compris entre 0 et 281 474 976 710 655. Ce nombre sera également converti en binaire pour la comparaison.

La fonction compare chaque bit de nombre1 avec le bit correspondant de nombre2, en partant de la droite (bit de poids faible). Le résultat est la représentation décimale du nombre binaire obtenu après application du ET logique.

Attention : Si nombre1 ou nombre2 est négatif, décimal ou supérieur à 281 474 976 710 655, Excel retournera #NOMBRE!.

Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment masquer des bits avec la fonction BITET

Tu dépouilles les relevés d'un banc de registres où plusieurs informations sont empilées dans un même entier. Pour chaque ligne, tu ne veux garder que la zone couverte par le masque fourni par la documentation, et laisser tomber le reste. La fonction BITET compare les deux nombres bit à bit et n'en conserve que la partie commune.

Les étapes
  1. 1
    Dans une cellule, écris =BITET(.
  2. 2
    En 1er argument : clique sur la cellule qui porte la valeur brute à filtrer, B2. Elle contient l'entier 12, dans lequel le banc de registres a empilé plusieurs informations, et c'est lui qui va perdre tout ce que le masque ne couvre pas.
  3. 3
    En 2ᵉ argument : clique sur la cellule du masque qui décide des bits à conserver, C2. Elle contient 10, et l'ordre des deux arguments n'a aucune importance puisqu'un bit ne survit que si les deux valent 1.
  4. 4
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Les deux références sont relatives, donc chaque registre se retrouve confronté au masque écrit sur sa propre ligne.
Au final, ta formule devrait ressembler à ça :=BITET(B2; C2)
Explication
La fonction BITET aligne 12 (1100 en binaire) et 10 (1010) puis ne garde un bit que là où les deux valent 1 : il reste 1000, soit 8. Le masque décide de ce qui survit, et rien d'autre ne passe. La ligne 42 face au masque 63 ressort intacte, parce que le masque couvre déjà tous ses bits.
Exemple 2

Comment vérifier que tous les droits d'un masque sont accordés avec la fonction BITET

Une application encode les droits de chaque utilisateur dans un seul entier, et une fonctionnalité sensible réclame plusieurs droits à la fois pour s'ouvrir. Tu as la liste des profils et le masque des droits exigés, et tu dois dire qui passe vraiment, pas qui en possède un bout. La fonction BITET révèle l'intersection entre le profil et le masque, et il suffit de la comparer au masque pour trancher.

Les étapes
  1. 1
    Dans une cellule, écris =SI(.
  2. 2
    En 1er argument : écris le test qui confronte le profil aux droits exigés, BITET(B2; C2)=C2. La fonction BITET, refermée dès cette étape, ne retient que les droits présents des deux côtés, et l'égalité avec le masque n'est vraie que si aucun droit exigé ne manque à l'appel.
  3. 3
    En 2ᵉ argument : saisis le texte affiché quand le profil couvre tout le masque, "Oui". Les guillemets sont obligatoires pour qu'Excel affiche ce mot tel quel au lieu de le chercher parmi les noms définis dans le classeur.
  4. 4
    En 3ᵉ argument : saisis le texte affiché quand il manque au moins un droit, "Non". Un profil qui possède une partie des droits exigés tombe dans ce cas au même titre qu'un profil qui n'en possède aucun.
  5. 5
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Il n'en reste qu'une à fermer, celle de la fonction SI, puisque celle de la fonction BITET a été refermée au premier argument.
Voici la formule que tu obtiens à la fin :=SI(BITET(B2; C2)=C2; "Oui"; "Non")
Explication
Tester > 0 ne dirait que « au moins un droit sur les deux », ce qui laisserait passer un profil incomplet. Comparer le résultat au masque lui-même est bien plus exigeant : le profil 11 face aux droits requis 6 ne rend que 2, donc il lui manque un droit et la réponse tombe à « Non ». Le profil 13 face à 5 rend 5, le masque entier, donc l'accès est complet.
Exemple 3

Comment éviter l'erreur #NOMBRE! avec la fonction BITET

Les relevés viennent d'un export automatique et tu ne maîtrises pas leur propreté : une virgule ou un signe moins traîne de temps en temps dans la colonne. Tu veux que le masquage tienne debout sur toute la hauteur au lieu de s'effondrer ligne après ligne. En arrondissant en amont et en prévoyant un repli, tu récupères tout ce qui est récupérable et tu isoles le reste.

Les étapes
  1. 1
    Dans une cellule, écris =SIERREUR(.
  2. 2
    En 1er argument : écris le masquage à surveiller, BITET(ENT(A2); B2). Ses deux parenthèses se referment dès cette étape, et la fonction ENT y tronque le nombre importé avant que BITET ne le reçoive, une précaution indispensable puisque BITET refuse un décimal au lieu de l'arrondir elle-même. Le masque B2, lui, part directement dans la fonction, parce que tu l'écris toi-même et qu'il n'a aucune raison d'être décimal.
  3. 3
    En 2ᵉ argument : saisis le texte de repli affiché quand le calcul échoue, "Erreur". Il n'apparaît que sur la ligne du nombre négatif, que la troncature ne sauve pas puisque la fonction ENT laisse -1 à -1.
  4. 4
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Une seule parenthèse restait ouverte à ce stade, celle de la fonction SIERREUR, car celles des fonctions BITET et ENT ont été refermées au premier argument.
Une fois les morceaux assemblés, ta formule donne ça :=SIERREUR(BITET(ENT(A2); B2); "Erreur")
Explication
Contrairement à une idée répandue, la fonction BITET ne tronque pas les décimaux : 12,9 lui arrache un #NOMBRE! au lieu de devenir 12. La fonction ENT fait la troncature explicitement et le calcul repart. Le négatif, lui, reste irrécupérable (aucun entier non signé ne lui correspond), d'où le SIERREUR qui affiche « Erreur » sur cette seule ligne.
Le conseil du pro
Pour savoir d'un coup si tous les bits d'un masque sont présents, compare le résultat de BITET au masque lui-même : quand =BITET(valeur; masque) = masque, chaque droit visé est bien activé. Pour tester un seul flag, un simple > 0 suffit.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction BITET

Deux ennuis viennent de ce que tu donnes à manger à BITET, et un troisième de ce que tu crois qu'elle fait. Un nombre négatif, décimal ou au-delà des 48 bits déclenche #NOMBRE!, tandis qu'une cellule contenant du texte ou un "N/A" importé sort un #VALEUR!.

Le dernier piège n'est pas une erreur affichée mais un mauvais résultat : confondre BITET avec ET, qui répond VRAI/FAUX là où BITET compare les bits un à un.

Erreur #NOMBRE! – Valeur hors limites ou négative

L'erreur #NOMBRE! apparaît quand l'un des arguments est négatif, décimal ou supérieur à 281 474 976 710 655 (limite de 48 bits). Les causes les plus fréquentes sont un nombre négatif importé depuis une source externe, ou un résultat intermédiaire qui dépasse la limite.

Solution : Utilise ENT(ABS(A1)) pour forcer un entier positif avant de passer la valeur à BITET. Pour les cas où la valeur peut légitimement être invalide, protège avec =SIERREUR(BITET(A1; A2); 0) pour neutraliser l'erreur.

Erreur #VALEUR! – Argument non numérique

Cette erreur survient quand l'un des arguments n'est pas un nombre. Une cellule contenant du texte, une cellule vide non protégée, ou une valeur comme "N/A" ou "" peut déclencher cette erreur.

Solution : Vérifie que les deux arguments sont bien numériques avant d'appliquer BITET avec =SI(ET(ESTNUM(A1); ESTNUM(A2)); BITET(A1; A2); "Données invalides"). Cela permet d'afficher un message explicite au lieu d'une erreur brute.

Confusion entre ET logique et BITET

La fonction ET compare des valeurs booléennes et retourne VRAI ou FAUX, tandis que BITET compare des bits individuels de nombres entiers et retourne un entier. =ET(12; 10) retourne VRAI (les deux sont différents de 0), alors que =BITET(12; 10) retourne 8 (comparaison bit à bit : 1100 ET 1010 = 1000).

Solution : Utilise ET pour des comparaisons logiques (est-ce que A est vrai ET B est vrai ?), et réserve BITET pour les opérations sur des valeurs binaires encodées. Si tu travailles avec des 0 et des 1 comme des booléens, ET est probablement la bonne fonction.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

BITET vs BITOU vs BITOUEXCLUSIF

Choisis BITET quand tu veux savoir ce que deux nombres ont en commun : c'est elle qui masque des bits et qui teste si un flag précis est présent. Prends BITOU pour fusionner des flags (ajouter une permission à un utilisateur) puisqu'elle garde un bit dès qu'il apparaît dans l'un des deux nombres.

BITOUEXCLUSIF garde le bit uniquement quand les deux diffèrent : c'est l'outil pour repérer ce qui a changé entre deux valeurs ou pour retirer une permission.

CritèreBITETBITOUBITOUEXCLUSIF
OpérationET logique (AND)OU logique (OR)OU exclusif (XOR)
Bit résultant = 1 siLes deux bits = 1Au moins un bit = 1Exactement un bit = 1
Exemple avec 12 (1100) et 10 (1010)8 (1000)14 (1110)6 (0110)
Cas d'usage principalMasquage, test de flagsCombinaison de flags, unionDétection de différences, chiffrement
Vrai ou faux ?
« BITET, c'est ET en version binaire, donc =BITET(12;10) répond VRAI. » Faux : ET renvoie VRAI dès que ses arguments sont non nuls, alors que BITET compare les bits un par un et sort un entier, ici 8 (1100 ET 1010 = 1000). Deux fonctions à ne surtout pas confondre.
FAQ

Questions fréquentes

BITET effectue un ET logique bit à bit entre deux nombres. Elle compare chaque bit des deux nombres et retourne 1 seulement si les deux bits correspondants valent 1. Utile pour le masquage de bits, l'extraction de flags ou le traitement binaire lors d'imports de données techniques.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction BITET : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir