Bit

Gets the state of an individual bit in an integer value.

Syntax
	KeyPgPpdefine#define Bit( value, bit_number ) (((value) KeyPgOpAndAnd (KeyPgCastCast(KeyPgTypeofTypeOf(value), 1) 
	KeyPgOpShiftLeftShl (bit_number))) <> 0)

Usage
	result = Bit( value, bit_number )

Parameters
	value
		The integer value.
	bit_number
		The index of the bit.

Return Value
	Returns an KeyPgIntegerInteger value of -1 if the bit is set, or 0 if the bit is 
	cleared.

Description
	This macro expands to an integer value indicating whether or not the bit 
	specified by bit_number is set in the integer value. Behaves as `(value 
	KeyPgOpAndAnd 1 KeyPgOpShiftLeftShl bit_number) <> 0`.

	The valid range of values for bit_number depends on the size, in bits, 
	of `KeyPgTypeofTypeOf(value)`, which is `0` (from the lowest bit) through `KeyPgSizeofSizeOf(
	value) * 8 - 1` (up to the highest bit). See TblVarTypesStandard Datatype Limits 
	for a table of the standard datatypes and their sizes.
	For the bit_number values outside the valid range, the results of this 
	macro are undefined.

Example
	Print Bit(&B1000, 3)
	Print Bit(4,2)
	Print Bit(5,1)
	Print Bit(&H8000000000000000ULL,63)

	will produce the output:


	-1
	-1
	 0
	-1

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

Differences from QB
	* New to FreeBASIC

See also
	* KeyPgBitsetBitSet
	* KeyPgBitresetBitReset

