Bit

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

Syntax
   #define Bit( value, bit_number ) (((value) And (Cast(TypeOf(value), 1) 
   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 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 
   And 1 Shl bit_number) <> 0`.

   The valid range of values for bit_number depends on the size, in bits, 
   of `TypeOf(value)`, which is `0` (from the lowest bit) through `SizeOf(
   value) * 8 - 1` (up to the highest bit). See 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(&H8000000000000000ULL,63)

   will produce the output:


   -1
   -1
    0
   -1

Dialect Differences
   * Not available in the -lang qb dialect unless referenced with the 
     alias __Bit.

Differences from QB
   * New to FreeBASIC

See also
   * BitSet
   * BitReset

