Help Center
Help CenterFreeBASIC

BitSetkeyword

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

Bit Manipulationkeyworddocumented

Syntax

#define BitSet( value, bit_number ) ((value) Or (Cast(TypeOf(Value), 1) Shl (bit_number)))

Parameters

NameDescription
valueThe integer value.
bit_numberThe index of the bit to set.

Return value


Returns the integer value with the specified bit set.

Description


This macro expands to a copy of the integer value with the specified bit_number set (to on, or `1`). Behaves as `value Or (1 Shl bit_number)`.
To set a specified bit in a variable, the following assignment can be used: variable = BitSet( variable, bit_number )

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.

Remarks

Usage


result = BitSet( value, bit_number )

Dialect Differences


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

Differences from QB


  • New to FreeBASIC.

See also


Example


Print Bin(BitSet(&b10001,2))

Print BitSet(4, 0)

Print Hex(BitSet(1ull, 63))

will produce the output:

10101
 5
8000000000000001

Reference

  • Documented in KeyPgBitset.html