# Function Reference

# BitShift

Performs a bit shifting operation.

BitShift ( value, shift )

## Parameters

value | The number to be shifted.
shift | Number of bits to shift to the right (negative numbers shift left).

## Return Value

Returns the value shifted by the required number of bits.
Bit operations are performed as 32-bit integers.

## Remarks

Remember hex notation can be used for numbers.
Right shifts are equivalent to halving; left shifts to doubling.

## Related

BitAND, BitNOT, BitOR, BitRotate, BitXOR, Hex

## Example

    #include <MsgBoxConstants.au3>

    Example()

    Func Example()
        ; Note: "b" is the symbol for byte.

        ; Assign a Local variable the bitwise left-shift operation of 2.
        Local $iBitShift1 = BitShift(2, -1) ; 2 = 0010b left-shifted once -> 4 = 0100b

        ; Note: It is equivalent to do this: BitRotate(2, 1)

        ; Display the result.
        MsgBox($MB_SYSTEMMODAL, "", $iBitShift1)

        ; Assign a Local variable the bitwise right-shift operation of 1.
        Local $iBitShift2 = BitShift(1, 1) ; 1 = 0001b right-shifted once -> 0 = 0000b

        ; Display the result.
        MsgBox($MB_SYSTEMMODAL, "", $iBitShift2)

        ; Assign a Local variable the bitwise left-shift operation of 14.
        Local $iBitShift3 = BitShift(14, -2) ; 14 = 1110b left-shifted twice -> 56 = 0011 1000b

        ; Display the result.
        MsgBox($MB_SYSTEMMODAL, "", $iBitShift3)

        ; Assign a Local variable the bitwise
        Local $iBitShift4 = BitShift(1, -31)
        ;1 = 0001b right-shifted 31 times -> -2147483648 (32 bits) = 1000 0000 0000 0000 0000 0000 0000 0000b

        ;Note: in 2's-complement notation, the 32nd digit from the right has a negative sign.

        ; Display the result.
        MsgBox($MB_SYSTEMMODAL, "", $iBitShift4)
    EndFunc   ;==>Example