Even though it returns a result, the following code appears to be meaningless. The maximum possible shift is -31 to 31 (not -99999). Note: passing different out of bounds values for the shift parameter returns different results. I was wondering what was happening. $a = BitShift(1, -99999) MsgBox(0, "Meaningless", $a)