Help Center›FreeBASIC
Booleankeyword
Standard data type
Syntax
Dim variable As Boolean
Description
Boolean data type. Can hold the values
True or FalseDefault value on initialization is
FalseNotes on definition of boolean data type:
- Ideally, the definition of the boolean data type is that it holds the value of
- A more realistic definition is that the boolean data type is a 1-bit integer, having the value 0 to indicate
- For a practical definition, we must consider, yet again, additional factors. The most significant factor is that the hardware (processor) on which code is executed does not directly support a 1-bit data type; the smallest register or memory size we can work with is 8-bits or 1-byte.
- Assume "false" is 0 in both C/C++ and FB. C/C++ has logical 'not' operator '!' such that '!0' produces '1'. FB has a bitwise
- Nevertheless the definition under the hood for a FB boolean remains an 1-bit integer, zero extended to fill larger integer types.
- Therefore when assigning a boolean with an integer value (by implicit conversion and not with the
- Otherwise when assigning a numeric type with a boolean (by implicit conversion),
- However, the purpose and intent of the boolean data type remains, that it should only ever hold a
True or False, and that's it. However, to make this concept a reality, we need a definition that uses real world connections.- A more realistic definition is that the boolean data type is a 1-bit integer, having the value 0 to indicate
False and 1 to indicate True.- For a practical definition, we must consider, yet again, additional factors. The most significant factor is that the hardware (processor) on which code is executed does not directly support a 1-bit data type; the smallest register or memory size we can work with is 8-bits or 1-byte.
- Assume "false" is 0 in both C/C++ and FB. C/C++ has logical 'not' operator '!' such that '!0' produces '1'. FB has a bitwise
Not operator such that 'not 0' produces '-1'.- Nevertheless the definition under the hood for a FB boolean remains an 1-bit integer, zero extended to fill larger integer types.
- Therefore when assigning a boolean with an integer value (by implicit conversion and not with the
False or True value), '0' induces the False state and '1' or '-1' induces the True state (any other value also induces the True state, but with a warning message).- Otherwise when assigning a numeric type with a boolean (by implicit conversion),
False induces the '0' value and True induces the '-1' value.- However, the purpose and intent of the boolean data type remains, that it should only ever hold a
True value or False value, regardless of the underlying details.Remarks
Version
- Since fbc 1.04.0
Dialect Differences
- Not available in the -lang qb dialect unless referenced with the alias
__Boolean.
Differences from QB
- New to FreeBASIC
See also
Example
Dim boolvar As Boolean
boolvar = True
Print "boolvar = ", boolvar
Output:
boolvar = true
Reference
- Documented in KeyPgBoolean.html