Operator Shl (Shift Left)

Shifts the bits of a numeric expression to the left

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

Usage
	result = lhs Shl rhs

Parameters
	lhs
		The left-hand side expression.
	rhs
		The right-hand side shift expression.

Return Value
	Returns the result of lhs being shifted left rhs number of times.

Description
	Operator Shl (Shift left) shifts all of the bits in the left-hand side 
	expression (lhs) left a number of times specified by the right-hand side 
	expression (rhs). Numerically, the result is the same as "KeyPgCintCInt( lhs KeyPgOpMultiply* 2 KeyPgOpExponentiate^
	rhs )". For example, "&b0101 Shl 1" returns the binary number &b01010, 
	and "5 Shl 1" returns 10.

	Neither of the operands are modified in any way.

	If the result is too large to fit inside the result's data type, the 
	leftmost bits are discarded ("shifted out").
	The results of this operation are undefined for values of rhs less than 
	zero, or greater than or equal to the number of bits in the result's 
	data type.

	This operator can be overloaded for user-defined types.

Example
	'Double a number
	For i As Integer = 0 To 10
	   
	   Print 5 Shl i, Bin(5 Shl i, 16)
	   
	Next i

Output:

	 5            0000000000000101
	 10           0000000000001010
	 20           0000000000010100
	 40           0000000000101000
	 80           0000000001010000
	 160          0000000010100000
	 320          0000000101000000
	 640          0000001010000000
	 1280         0000010100000000
	 2560         0000101000000000
	 5120         0001010000000000

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

Differences from QB
	* New to FreeBASIC

See also
	* KeyPgOpCombineShiftLeftOperator Shl= (Shift Left And Assign)
	* KeyPgOpShiftRightOperator Shr (Shift Right)
	* KeyPgBinBin
	* CatPgMathMathematical Functions

