BitReset

FreeBASIC

BitReset
 
Gets the value of an integer with a specified bit cleared.

Syntax

#define BitReset( value, bit_number ) ((value) And Not (Cast(TypeOf(Value), 1) 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 And Not (1 Shl bit_number)`.

The valid range of values for bit_number depends on the size, in bits, of `TypeOf(value)`, which is `0` through `SizeOf(value) * 8 - 1`. See Standard Datatype Limits for a table of the standard datatypes and their sizes.

Example

Print BitReset(5,0)
Print Hex(BitReset(&h8000000000000001,63))

will produce the output:

 4
1

Dialect Differences

  • Not available in the -lang qb dialect unless referenced with the alias __Bitreset.

Differences from QB

  • New to FreeBASIC.

See also