Effectue une opération de rotation sur les bits.
BitRotate ( value [, shift = 1 [, size = "W"]] )
value | Le nombre sur lequel la fonction doit opérer. |
shift | [optionnel] Nombre de bits à décaler circulairement vers la gauche (les nombres négatifs décalent à droite). Si non donné, la valeur par défaut est 1. |
size | [optionnel] Une chaîne qui détermine la taille de la rotation, 16 bits par défaut. Voir ce qui suit. |
"B" | Rotation des bits à l'intérieur de l'octet de poids faible (8 bits). |
"W" | Rotation des bits à l'intérieur du mot de poids faible (16 bits). |
"D" | Rotation des bits à l'intérieur du double mot entier (32 bits). |
Succès: | Retourne le résulat de la rotation par le nombre de bits demandés. |
Échec: | @error <> 0 si la taille est incorrecte. |
BitAND, BitNOT, BitOR, BitShift, BitXOR, Hex
#include <MsgBoxConstants.au3> Example() Func Example() ; Remarque: "b" est le symbole de l'octet. ;Assigne une variable locale avec une opération bit à bit d'une rotation à gauche de 1 bit sur le nombre 2. Local $iBitRotate1 = BitRotate(2, 1) ; 2 = 0010b rotation gauche une fois -> 4 = 0100b ; Remarque: Il est équivalent de faire ceci: BitShift(2, -1) ; Affiche le résultat: 4 MsgBox($MB_SYSTEMMODAL, "", $iBitRotate1) ; Assigne une variable locale avec l'opération bit à bit d'une rotation à droite de 1 bit du nombre 1. Local $iBitRotate2 = BitRotate(1, -1) ; 1 = 0001b rotation droite une fois -> 32768 (32 bits) = 1000 0000 0000 0000b ; Affiche le résultat: 2^15 = 32768 MsgBox($MB_SYSTEMMODAL, "", $iBitRotate2) ;Assigne une variable locale avec l'opération bit à bit d'une rotation à droite de 2 bits du nombre 14. Local $iBitRotate3 = BitRotate(14, -2) ; 14 = 1110b rotation droite deux fois -> 32771 (16 bits) = 1000 0000 0000 0011b ; Affiche le résultat: 32771 MsgBox($MB_SYSTEMMODAL, "", $iBitRotate3) ;Assigne une variable locale avec l'opération bit à bit d'une rotation à droite de 2 bits du nombre 14 sur 32 bits. Local $iBitRotate4 = BitRotate(14, -2, "D") ; 14 = 1110b rotation droite deux fois -> -2147483645 (32 bits) = 1000 0000 0000 0000 0000 0000 0000 0011b (le premier bit est le signe) ; Affiche le résultat. MsgBox($MB_SYSTEMMODAL, "", $iBitRotate4) EndFunc ;==>Example