BITAND |
Et binaire |
| DAX (Data Analysis Expressions) |
Syntaxe
Paramètres
| Nom |
Description |
| number1 |
Ce paramètre permet de spécifier le premier entier sur lequel sera appliqué l'opérateur binaire AND. Il est converti en représentation binaire avant l'opération. |
| number2 |
Ce paramètre permet de spécifier le second entier à utiliser dans l'opération binaire AND. Il est également converti en binaire pour évaluer les bits communs à 1. |
Description
Cette fonction permet de retourner le résultat d'un opérateur binaire AND entre deux nombres.
Remarques
- BITAND réalise une opération binaire bit à bit : Contrairement à l'opérateur logique AND (qui renvoie TRUE/FALSE), BITAND analyse la représentation binaire
des deux nombres. Pour chaque position de bit, la fonction renvoie 1 uniquement si les deux bits correspondants sont eux-mêmes égaux à 1. Sinon, la position de bit devient
0. Le résultat final est converti en entier décimal.
- Fonction essentielle pour la manipulation de drapeaux (flags) : Dans les modèles où des états sont stockés sous forme de bits (par exemple, permissions
utilisateur, options activées, codes de configuration), BITAND permet de tester si une option spécifique est enregistrée dans l'ensemble. En appliquant BITAND avec un masque
binaire correspondant à une valeur donnée, on peut détecter rapidement la présence d'un bit actif.
- BITAND est déterministe et insensible au contexte de filtre : La fonction ne dépend pas du contexte d'évaluation en termes de filtre ou de lignes. Quelle que
soit l'origine des valeurs, BITAND ne fait que transformer les entiers en binaire et exécuter l'opération. Cela en fait une fonction fiable pour des calculs techniques où
l'environnement d'agrégation n'est pas pertinent.
- Les valeurs décimales sont tronquées : Si des valeurs non entières sont fournies à BITAND, DAX les convertit d'abord en entier (souvent par troncature). Par
exemple, 6.8 sera interprété comme 6 avant la conversion binaire. Ainsi, dans les calculs de précision, il faut veiller à ne fournir que des nombres entiers ou à contrôler
préalablement les conversions.
- La taille des nombres affecte la lisibilité du résultat : Plus les valeurs sont grandes, plus la représentation binaire contient de bits, et plus la structure
de l'opération devient difficile à interpréter mentalement. Par exemple, BITAND(1023, 2047) implique 10 et 11 bits en profondeur. Il est donc souvent préférable de documenter
les masques binaires ou d'utiliser des constantes symboliques.
- Utile pour filtrer des combinaisons de valeurs binaires : Dans certains modèles financiers ou d'ingénierie, plusieurs conditions sont encodées dans un même
nombre via des bits. Avec BITAND, on peut extraire seulement les combinaisons pertinentes. Par exemple, BITAND(codeStatus, 4) renverra 4 si le troisième bit est actif, ce
qui permet de tester une condition sans conflit avec les autres.
- Résultat toujours inférieur ou égal aux opérandes : Parce que BITAND ne fait que conserver les bits communs à 1, aucune position ne peut ajouter une valeur
supérieure à l'une des entrées. Ainsi, BITAND(number1, number2) ≤ min(number1, number2). Cette propriété garantit que l'opération ne crée pas de nouvelle information
binaire, elle ne fait qu'en filtrer.
- BITAND est souvent utilisé avec BITOR et BITXOR : Bien que BITAND soit l'opération la plus restrictive, elle fait partie d'un trio logique binaire complet. En
combinant BITAND (sélection), BITOR (union) et BITXOR (comparaison exclusive), il est possible de construire des systèmes de codage très robustes pour des règles métiers
complexes. Cela rapproche DAX de certains traitements proches du bas niveau informatique.
Dernière mise à jour : Vendredi, le 30 Mai 2025