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`