### Revision history for KeyPgBitset

#### Revision [21589]

Last edited on 2016-09-12 07:10:32 by fxm [Added a precision on bit indexing range]##### Additions:

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.

##### Deletions:

No Differences

##### Additions:

[[KeyPgPpdefine|#define]] **Bitset**( //value//, //bit_number// ) ((//value//) [[KeyPgOpOr|or]] ([[KeyPgCast|Cast]]([[KeyPgTypeof|TypeOf]](//Value//), 1) [[KeyPgOpShiftLeft|shl]] (//bit_number//)))

This macro expands to a copy of the integer ##//value//## with the specified ##//bit_number//## set (to //on//, or `##1##`). Behaves as `##//value// [[KeyPgOpOr|Or]] (1 [[KeyPgOpShiftLeft|Shl]] //bit_number//)##`.

The valid range of values for ##//bit_number//## depends on the size, in bits, of `##[[KeyPgTypeof|Typeof]](//value//)##`, which is `##0##` through `##[[KeyPgSizeof|Sizeof]](//value//) * 8 - 1##`. See [[TblVarTypes|Standard Datatype Limits]] for a table of the standard datatypes and their sizes.

- Not available in the //[[CompilerOptlang|-lang qb]]// dialect unless referenced with the alias ##**""__Bitset""**##.

- ##[[KeyPgBit|Bit]]##

- ##[[KeyPgBitreset|Bitreset]]##

This macro expands to a copy of the integer ##//value//## with the specified ##//bit_number//## set (to //on//, or `##1##`). Behaves as `##//value// [[KeyPgOpOr|Or]] (1 [[KeyPgOpShiftLeft|Shl]] //bit_number//)##`.

The valid range of values for ##//bit_number//## depends on the size, in bits, of `##[[KeyPgTypeof|Typeof]](//value//)##`, which is `##0##` through `##[[KeyPgSizeof|Sizeof]](//value//) * 8 - 1##`. See [[TblVarTypes|Standard Datatype Limits]] for a table of the standard datatypes and their sizes.

- Not available in the //[[CompilerOptlang|-lang qb]]// dialect unless referenced with the alias ##**""__Bitset""**##.

- ##[[KeyPgBit|Bit]]##

- ##[[KeyPgBitreset|Bitreset]]##

##### Deletions:

This macro expands to a copy of the integer ##//value//## with the specified ##//bit_number//## set (to //on//, or `##1##`). Behaves as `##//value// [[KeyPgOpOr Or]] (1 [[KeyPgOpShiftLeft Shl]] //bit_number//)##`.

The valid range of values for ##//bit_number//## depends on the size, in bits, of `##[[KeyPgTypeof Typeof]](//value//)##`, which is `##0##` through `##[[KeyPgSizeof Sizeof]](//value//) * 8 - 1##`. See [[TblVarTypes Standard Datatype Limits]] for a table of the standard datatypes and their sizes.

- Not available in the //[[CompilerOptlang -lang qb]]// dialect unless referenced with the alias ##**""__Bitset""**##.

- ##[[KeyPgBit Bit]]##

- ##[[KeyPgBitreset Bitreset]]##

##### Additions:

- Not available in the //[[CompilerOptlang -lang qb]]// dialect unless referenced with the alias ##**""__Bitset""**##.

##### Deletions:

#### Revision [14265]

Edited on 2009-08-29 21:51:17 by CountingPine [Remove CamelCase links in "New to FreeBASIC"]##### Additions:

- New to ""FreeBASIC"".

##### Deletions:

##### Additions:

//result// = **Bitset**( //value//, //bit_number// )