BOOLEAN
Standard data type
Syntax:
Description:
Boolean data type. Can hold the values True or False
Default value on initialization is False
Notes on definition of boolean data type:
Default value on initialization is False
Notes on definition of boolean data type:
- Ideally, the definition of the boolean data type is that it holds the value of 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.
- 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.
Examples:
Dim boolvar As Boolean
boolvar = True
Print "boolvar = ", boolvar
boolvar = True
Print "boolvar = ", boolvar
Output:
boolvar = true
- 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:
Back to Standard Data Types