Functions > Math >


BitShift

Effectue une op�ration de d�calage sur les bits.

BitShift ( value, shift )

Param�tres

value Le nombre dont il faut d�caler les bits.
shift Le nombre de bits � d�caler vers la droite (un nombre n�gatif d�cale vers la gauche).

Valeur de retour

Retourne la valeur d�cal�e du nombre de bits demand�.
Les op�rations bit � bit sont effectu�es sur des entiers 32 bits.

Remarque

La notation hexad�cimale peut �tre utilis�e comme arguments.
Les d�calages � droite sont �quivalents � des successions de divisions par deux; les d�calages � gauche � des multiplications par deux.

En relation

BitAND, BitNOT, BitOR, BitRotate, BitXOR, Hex

Exemple

#include <MsgBoxConstants.au3>

Example()

Func Example()
    ;Remarque: "b" est le symbole pour la notation binaire.

    ; Assigne une variable locale avec le r�sultat du d�calage � gauche d'un bit du nombre 2.
    Local $iBitShift1 = BitShift(2, -1) ; 2 = 0010b d�cal�e � gauche une fois -> 4 = 0100b

    ;Remarque: Il est �quivalent de faire : BitRotate (2, 1)

    ; Affiche le r�sultat: 4
    MsgBox($MB_SYSTEMMODAL, "", $iBitShift1)

    ; Assigne une variable locale avec le r�sultat du d�calage � droite d'un bit du nombre 1.
    Local $iBitShift2 = BitShift(1, 1) ; 1 = 0001b d�cal� � droite une fois -> 0 = 0000b

    ; Affiche le r�sultat: 0
    MsgBox($MB_SYSTEMMODAL, "", $iBitShift2)

    ; Assigne une variable locale avec le r�sultat du d�calage � gauche de 2 bits du nombre 14.
    Local $iBitShift3 = BitShift(14, -2) ;14 = 1110b d�cal� � gauche deux fois -> 56 = 0011 1000b

    ; Affiche le r�sultat: 56
    MsgBox($MB_SYSTEMMODAL, "", $iBitShift3)

    ; Assigne une variable locale bit � bit
    Local $iBitShift4 = BitShift(1, -31)
    ;1 = 0001b d�cal� � gauche 31 fois -> -2147483648 (32 bits) = 1000 0000 0000 0000 0000 0000 0000 0000b

    ;Remarque : dans la notation compl�ment � 2, le 32i�me chiffre � partir de la droite est le signe.

    ; Affiche le r�sultat.
    MsgBox($MB_SYSTEMMODAL, "", $iBitShift4)
EndFunc   ;==>Example