BitReset

Gets the value with a specified bit cleared, from a copied integer.

Syntax
	KeyPgPpdefine#define BitReset( value, bit_number ) ((value) KeyPgOpAndAnd KeyPgOpNotNot (KeyPgCastCast(KeyPgTypeofTypeOf(
	Value), 1) KeyPgOpShiftLeftShl (bit_number)))

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

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

Return Value
	Returns the integer value with the specified bit cleared.

Description
	This macro expands to a copy of the integer value with the specified 
	bit_number cleared (to off, or `0`). Behaves as `value KeyPgOpAndAnd KeyPgOpNotNot (1 KeyPgOpShiftLeftShl 
	bit_number)`.
	To clear a specified bit in a variable, the following assignment can be 
	used: variable = BitReset( variable, bit_number )

	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 Bin(BitReset(&b10101, 2))
	Print BitReset(5,0)
	Print Hex(BitReset(&h8000000000000001,63))

	will produce the output:

	10001
	 4
	1

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

Differences from QB
	* New to FreeBASIC.

See also
	* KeyPgBitBit
	* KeyPgBitsetBitSet

