BITXOR |
Ou exclusif 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 XOR. 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 XOR. Il est également converti en binaire pour évaluer les bits où les deux nombres diffèrent. |
Description
Cette fonction permet de retourner le résultat d'un opérateur binaire XOR entre deux nombres.
Remarques
- Compréhension de l'opérateur XOR : La fonction BITXOR applique un opérateur logique "OU exclusif" bit à bit. Cela signifie que chaque bit du résultat vaut
1 uniquement si les bits correspondants des deux nombres d'entrée sont différents. Si les deux bits sont identiques (0-0 ou 1-1), le résultat sera 0 à cet emplacement. Cette
logique en fait un outil précieux pour identifier les différences binaires entre deux valeurs.
- Utilité dans les opérations de cryptographie et de hashing : Le XOR est souvent utilisé en informatique pour ses propriétés réversibles : appliquer de nouveau
le même XOR avec la même clef reconstitue la donnée initiale. Dans le cadre de modèles Power BI, BITXOR peut être utilisé pour du traitement de données ou des règles
d'obfuscation simples. Bien que ce ne soit pas une sécurité forte, la fonction sert à des calculs basés sur des clefs binaires.
- Fonctionne uniquement sur des entiers : Les paramètres fournis à BITXOR doivent être des nombres entiers. Si une valeur décimale ou non numérique est passée
comme paramètre, elle sera convertie en entier via troncation avant opération. Cette conversion implicite peut créer des résultats inattendus si l'utilisateur n'a pas
conscience de cette limitation.
- Ignorance du signe lors du traitement binaire : La représentation binaire utilisée par DAX considère le signe dans l'encodage (complément à deux). Cependant,
BITXOR ne fait pas d'interprétation logique du signe, il opère sur les bits bruts. Cela peut donner des résultats surprenants lorsque des nombres négatifs sont impliqués,
surtout si l'on s'attend à une logique "arithmétique" classique.
- Fonction particulièrement performante : BITXOR est une opération extrêmement rapide, car elle s'appuie sur des calculs logiques internes au processeur. Dans
un contexte Power BI, appliquer cette fonction sur des colonnes entières est beaucoup moins coûteux que des opérations textuelles
ou des comparaisons complexes. Son usage peut donc être intéressant pour optimiser des scénarios de marquage ou de catégorisation binaire.
- Résultat déterministe et prédictible : Contrairement aux opérations d'agrégation dépendant du contexte de filtre, BITXOR renvoie toujours un résultat
déterministe basé uniquement sur les valeurs d'entrée. Cette propriété facilite le débogage et les tests, car une même paire de valeurs donnera toujours la même sortie,
indépendamment du contexte d'évaluation.
- Peut servir à combiner des drapeaux : BITXOR peut être utilisé pour comparer ou combiner des indicateurs ou "drapeaux" binaires. Contrairement à BITOR accumulant
les bits, BITXOR permet de détecter les zones où les drapeaux sont exclusifs. Par exemple, deux colonnes d'états peuvent être comparées pour identifier les divergences directes
entre deux ensembles de données.
- Ne doit pas être confondue avec BITOR : Il existe une confusion fréquente entre BITXOR et BITOR. BITOR renvoie un 1 dès qu'un des
deux bits est à 1, tandis que BITXOR exige que les bits soient différents pour retourner 1. Cette nuance produit des comportements très différents : BITOR fusionne, BITXOR
distingue. Bien comprendre cette différence est essentiel pour appliquer la fonction correctement.
Dernière mise à jour : Vendredi, le 30 Mai 2025