Operator Shl= (Shift Left And Assign)

Shifts left and assigns a value to a variable

Syntax
	KeyPgDeclareDeclare KeyPgOperatorOperator Shl= ( KeyPgByrefByRef lhs KeyPgAsAs KeyPgIntegerInteger, KeyPgByrefByRef rhs KeyPgAsAs KeyPgIntegerInteger )
	KeyPgDeclareDeclare KeyPgOperatorOperator Shl= ( KeyPgByrefByRef lhs KeyPgAsAs KeyPgUintegerUInteger, KeyPgByrefByRef rhs KeyPgAsAs KeyPgUintegerUInteger )
	KeyPgDeclareDeclare KeyPgOperatorOperator Shl= ( KeyPgByrefByRef lhs KeyPgAsAs KeyPgLongintLongInt, KeyPgByrefByRef rhs KeyPgAsAs KeyPgLongintLongInt )
	KeyPgDeclareDeclare KeyPgOperatorOperator Shl= ( KeyPgByrefByRef lhs KeyPgAsAs KeyPgUlongintULongInt, KeyPgByrefByRef rhs KeyPgAsAs KeyPgUlongintULongInt )

Usage
	lhs shl= rhs

Parameters
	lhs
		The variable to assign to.
	rhs
		The value to shift lhs left by.

Description
	This operator shifts the bits in its left-hand side (lhs) parameter a 
	number of times specified by its right-hand side (rhs) parameter, and 
	assigns the result to lhs. It is functionally equivalent to:
		lhs = lhs KeyPgOpShiftLeftShl rhs

	This operator can be overloaded for user-defined types as a member 
	KeyPgOperatorOperator using the appropriate syntax.

	Note: Similarly to the operator '=[>]' (assign), the alternative symbol 
	'Shl=>' can be also used.

Example
	Dim i As Integer
	i = &b00000011   '' = 3
	i Shl= 3         '' = i*2^3
	'' Result: 11000          24            24
	Print Bin(i), i, 3*2^3
	Sleep

Dialect Differences
	* Not available in the CompilerOptlang-lang qb dialect unless referenced with the 
	  alias __Shl=.

Differences from QB
	* New to FreeBASIC

See also
	* KeyPgOpShiftLeftOperator Shl (Shift Left)
	* KeyPgOpCombineShiftRightOperator Shr= (Shift Right And Assign)
	* CatPgMathMathematical Functions

