BITRSHIFT |
Décalage à droite binaire |
| DAX (Data Analysis Expressions) |
Syntaxe
|
BITRSHIFT(Number, Shift_Amount)
|
Paramètres
| Nom |
Description |
| Number |
Ce paramètre permet de spécifier la valeur entière à décaler vers la droite en représentation binaire. |
| Shift_Amount |
Ce paramètre permet de définir le nombre de positions (bits) vers la droite auxquelles le nombre doit être décalé. Chaque décalage divise la valeur par 2n, en tronquant la partie fractionnaire. |
Description
Cette fonction permet de décaler un nombre vers la droite d'un nombre de bits spécifié.
Remarques
- BITRSHIFT correspond à une division entière par 2n : Le décalage vers la droite d'un nombre de n bits équivaut à diviser ce nombre par 2n,
en tronquant les éventuelles décimales. Par exemple, BITRSHIFT(20,2) renvoie 5 car 20 ÷ 4 = 5. Cette opération est très utile pour simplifier les calculs sur des
puissances de deux de manière binaire.
- Perte des bits de droite : Lorsqu'un nombre est décalé, les bits situés à l'extrémité droite sont perdus. Cela peut entraîner une perte d'information si le
nombre contient des drapeaux ou des données codées sur plusieurs bits. Il faut donc s'assurer que les bits supprimés ne sont pas nécessaires pour les calculs futurs.
- Utilisation pour extraire des informations codées : BITRSHIFT est souvent combiné à BITAND pour extraire des parties spécifiques d'un nombre binaire. Par
exemple, on peut décaler un code vers la droite pour isoler certaines catégories ou sections de bits et appliquer un masque ensuite pour ne récupérer que les informations
voulues.
- Conversion implicite des nombres : Si un nombre décimal est fourni, DAX le convertira automatiquement en entier avant de réaliser le décalage. Ainsi,
BITRSHIFT(7.8,2) sera traité comme BITRSHIFT(7,2), ce qui peut surprendre si l'utilisateur ne contrôle pas les types de données dans la table ou les mesures.
- Fonction purement déterministe : BITRSHIFT n'est pas influencée par le contexte de filtre ni par le modèle de données. Elle se contente d'appliquer le
décalage sur les valeurs fournies. Cela garantit des résultats cohérents et fiables, quelle que soit la position dans un tableau ou une mesure.
- Décalage de zéro position : Si Shift_Amount est égal à 0, BITRSHIFT retourne simplement le nombre original sans modification. Cette propriété peut être utilisée
dans des calculs dynamiques où le nombre de positions à décaler est conditionnel, évitant ainsi des vérifications supplémentaires.
- Attention aux grands décalages : Un décalage supérieur au nombre de bits utilisés pour représenter le nombre renvoie 0. Par exemple, BITRSHIFT(5,10)
renverra 0 car les 10 bits les plus significatifs dépassent la valeur du nombre initial. Il est important de contrôler les valeurs de Shift_Amount pour éviter des résultats
inattendus.
- Complémentarité avec BITLSHIFT et autres opérations binaires : BITRSHIFT, combiné à BITLSHIFT, BITAND ou BITOR, permet de manipuler des données binaires
complexes, d'encoder et de décoder des valeurs, ou de gérer des drapeaux/permissions. Ces fonctions offrent une dimension algorithmique avancée à DAX, proche des manipulations
de bas niveau en programmation, tout en restant utilisables dans Power BI.
Dernière mise à jour : Vendredi, le 30 Mai 2025