Aller au contenu principal

Qu'est-ce que la fonction BITOU ?

Définition
La fonction BITOU calcule le OU logique bit à bit de deux entiers positifs : chaque bit du résultat vaut 1 si au moins l'un des deux bits correspondants des opérandes vaut 1. Les deux nombres doivent être compris entre 0 et 281 474 976 710 655 (2^48 - 1).

BITOU (BITOR en anglais) te sert quand tu manipules des masques binaires en développement ou en configuration matérielle et que tu dois combiner plusieurs propriétés dans un seul entier, sans les décomposer bit par bit à la main. C'est le réflexe dès que plusieurs options ou permissions doivent cohabiter dans une seule valeur numérique.

Concrètement, c'est elle qui combine des permissions d'accès (Lecture + Écriture = 3), fusionne des masques de configuration de registres matériels pour des microcontrôleurs, ou vérifie qu'un ensemble complet de flags système est activé.

Syntaxe

=BITOU(nombre1; nombre2)

Clique sur un argument pour aller à son explication.

Si l'un des arguments est un nombre décimal, Excel le tronque automatiquement vers zéro avant l'opération. Un nombre négatif ou supérieur à 281 474 976 710 655 génère l'erreur #NOMBRE!.

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

Comprendre chaque paramètre de la fonction BITOU

BITOU prend deux nombres, ni plus ni moins, et tous les deux sont obligatoires. Bonne nouvelle : leur ordre n'a aucune importance, car =BITOU(5;3) et =BITOU(3;5) donnent exactement le même résultat. Retiens juste la même contrainte pour chacun : un entier positif, jamais au-delà de 281 474 976 710 655.

1

nombre1

: le premier nombre entier de l'opération OU bit à bit

Il doit être positif et inférieur à 281 474 976 710 656. Si tu fournis un nombre décimal, Excel le tronquera automatiquement. Ce nombre représente généralement un premier masque de bits, un ensemble de flags ou une configuration à combiner.

2

nombre2

: le deuxième nombre entier de l'opération OU bit à bit

Mêmes contraintes que nombre1 : il doit être un entier positif inférieur à 281 474 976 710 656. BITOU compare chaque bit de nombre1 avec le bit correspondant de nombre2, et active le bit résultant si au moins l'un des deux bits source est à 1.

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

Exemples pratiques pas à pas

Exemple 1

Comment fusionner deux masques de permissions avec la fonction BITOU

Ton application range les droits de chaque rôle dans un unique entier, un bit par permission : Lecture vaut 1, Écriture vaut 2, Exécution vaut 4. Les droits arrivent en deux colonnes séparées selon le module, et tu veux le profil consolidé pour chaque rôle. La fonction BITOU réunit les deux masques en un seul nombre, sans additionner deux fois un droit déjà présent.

Les étapes
  1. 1
    Dans une cellule, écris =BITOU(.
  2. 2
    En 1er argument : clique sur la cellule du premier masque de droits, B2. Elle contient le code de la Lecture, 1. Comme la formule pointe la cellule et non le nombre lui-même, il suffit de changer la valeur dans la colonne pour que le profil consolidé se recalcule.
  3. 3
    En 2ᵉ argument : clique sur la cellule du second masque de droits, C2. Elle contient le code de l'Écriture, 2. L'ordre des deux arguments est sans effet, et =BITOU(C2; B2) afficherait le même 3.
  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 ligne fusionne le couple de masques qui lui appartient.
Au final, ta formule devrait ressembler à ça :=BITOU(B2; C2)
Explication
La fonction BITOU garde un bit dès qu'il apparaît dans l'un des deux nombres, sans exiger qu'il soit dans les deux. Lecture (1) et Écriture (2) occupent des bits distincts, donc leur fusion donne 3, les deux droits côte à côte dans un seul entier. La dernière ligne montre que 1 et 6 cohabitent de la même façon et remplissent les trois bits, soit 7.
Exemple 2

Comment ajouter un droit à un profil existant avec la fonction BITOU

On te demande d'accorder le droit d'écriture à toute une équipe, mais chaque membre part d'un profil différent et personne ne doit rien perdre au passage. Certains possèdent déjà ce droit, et une addition bête doublerait leur valeur et casserait leur profil. La fonction BITOU allume le bit visé s'il manque et ne fait rien s'il est déjà là.

Les étapes
  1. 1
    Dans une cellule, écris =BITOU(.
  2. 2
    En 1er argument : clique sur la cellule du profil actuel, B2. Elle contient les droits déjà acquis par Marie Dubois, et c'est la seule valeur qui change d'une ligne à l'autre. Rien de ce qui s'y trouve ne doit se perdre, d'où l'intérêt de partir de cette cellule plutôt que de réécrire un profil complet à la main.
  3. 3
    En 2ᵉ argument : saisis le masque du droit d'Écriture, 2. Cette valeur est la même pour toute l'équipe, donc l'écrire en dur évite une colonne entière qui répéterait le même nombre à chaque ligne.
  4. 4
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule sur toute la colonne. Le masque écrit en dur reste identique partout, alors que la référence B2 suit la ligne courante et va chercher le profil de chacun.
Voici la formule que tu obtiens à la fin :=BITOU(B2; 2)
Explication
L'intérêt est ici la sécurité de l'opération : allumer le bit de l'Écriture ne touche à aucun autre droit, et le profil 13 monte à 15 en gardant tout ce qu'il avait. Mieux, Sophie possède déjà l'Écriture et reste à 2 au lieu de passer à 4 comme le ferait une addition. Une simple somme fausserait ce profil, la fonction BITOU non.
Exemple 3

Comment fusionner trois masques en cascade avec la fonction BITOU

Tu montes la configuration d'un module dont les options viennent de trois sources différentes : la datasheet, une bibliothèque et tes propres réglages. Chaque source te donne son masque dans sa colonne, et le registre n'attend qu'une seule valeur à la fin. En imbriquant deux appels, tu empiles les trois masques dans un seul nombre.

Les étapes
  1. 1
    Dans une cellule, écris =BITOU(.
  2. 2
    En 1er argument : écris la fusion des deux premières sources et referme-la, BITOU(A2; B2). Un argument n'est pas obligé d'être une cellule, et cet appel imbriqué fait tout aussi bien l'affaire. Son résultat ne s'affiche nulle part dans la feuille, car il sert seulement d'entrée à l'appel extérieur.
  3. 3
    En 2ᵉ argument : clique sur la cellule du troisième masque, C2. Elle porte la dernière source de la configuration, ici 4. Sans cette troisième valeur, la formule s'arrêterait au 3 produit par l'appel intérieur.
  4. 4
    Ferme la parenthèse et appuie sur Entrée. Une seule parenthèse reste ouverte à ce stade, puisque celle de l'appel intérieur a été refermée dès la deuxième étape.
Une fois les morceaux assemblés, ta formule donne ça :=BITOU(BITOU(A2; B2); C2)
Explication
La fonction BITOU n'accepte que deux nombres, mais rien n'interdit de lui donner en entrée le résultat d'un premier appel. Le noyau BITOU(A2; B2) fusionne les deux premiers masques, puis l'appel extérieur y ajoute le troisième. La ligne 2, 8 et 16 donne ainsi 26, un entier où les trois bits d'origine sont allumés ensemble.
Le savais-tu ?
85 et 170 sont deux masques parfaitement complémentaires : 01010101 face à 10101010. Leur BITOU rallume donc les huit bits d'un coup et donne 255. Pratique pour vérifier que deux sous-masques couvrent bien tout un octet, sans trou ni recouvrement.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction BITOU

BITOU est exigeante sur ce qu'elle accepte en entrée, et c'est presque toujours là que ça coince. Un nombre négatif ou un masque qui dépasse les 48 bits autorisés déclenche #NOMBRE!, tandis qu'une cellule contenant du texte impossible à convertir renvoie #VALEUR!. Le piège commun : ces trois cas ne donnent pas la même erreur, donc le code qui s'affiche te dit déjà où chercher.

Utiliser des nombres négatifs

BITOU ne fonctionne qu'avec des nombres entiers positifs. Un nombre négatif comme -5 génère #NOMBRE! car la représentation en complément à deux n'est pas supportée.

Solution : Vérifie que tes deux arguments sont strictement positifs avant l'opération. Si tes données peuvent être négatives, filtre-les avec =SI(A1>=0; BITOU(A1;B1); "Erreur") pour éviter les erreurs silencieuses.

Dépasser la limite de 48 bits

Excel limite BITOU aux nombres de 48 bits maximum, soit 281 474 976 710 655. Au-delà, tu obtiens #NOMBRE! sans autre indication.

Solution : Vérifie tes valeurs d'entrée avant l'appel. Si tes masques peuvent dépasser cette borne, ajoute une validation : =SI(A1>281474976710655; "Dépassement"; BITOU(A1;B1)).

Fournir du texte non numérique

BITOU attend des valeurs numériques. Si une cellule contient du texte qui ne peut pas être converti en nombre (par exemple "abc"), Excel retourne #VALEUR!.

Solution : Assure-toi que tes cellules source contiennent bien des nombres. Note que "5" (texte qui ressemble à un nombre) est automatiquement converti, mais "abc" ne l'est pas. Utilise ESTNUM(A1) pour valider avant l'appel.

Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec BITOU

1Astuce

Visualise chaque étape avec DECBIN

Pour déboguer tes opérations binaires, crée une colonne auxiliaire avec =DECBIN(BITOU(A1;B1);8) pour afficher le résultat sur 8 bits. Tu verras instantanément quels bits ont été activés par la fusion, sans avoir à convertir de tête.
Ajoute aussi =DECBIN(A1;8) et =DECBIN(B1;8) pour comparer les trois colonnes côte à côte.

2Astuce

Combine plusieurs masques en cascade

BITOU ne prend que deux arguments, mais tu peux l'imbriquer pour fusionner plus de deux masques : =BITOU(BITOU(A1;B1);C1) combine trois valeurs en une seule opération.
Utile pour assembler des configurations provenant de plusieurs sources (datasheet, bibliothèques, calculs) avant d'écrire la valeur finale dans un registre.

3Astuce

Vérifie qu'un flag précis est actif avec BITET

Après avoir fusionné deux masques avec BITOU, utilise BITET pour vérifier si un bit spécifique est bien activé dans le résultat : =SI(BITET(BITOU(A1;B1);4)=4;"Bit 2 actif";"Bit 2 inactif").
Cette combinaison te permet de tester l'activation d'une fonctionnalité précise dans un masque de configuration composite.

FAQ

Questions fréquentes

BITOU effectue un OU logique bit à bit au niveau binaire, tandis que OU évalue des conditions booléennes. Par exemple, =BITOU(5;3) retourne 7 (binaire : 101 OU 011 = 111), alors que =OU(5;3) retourne simplement VRAI car les deux valeurs sont non nulles. BITOU travaille au niveau des bits individuels, OU au niveau des valeurs complètes.

Ressources

Pour aller plus loin

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

Tout voir