Jump to content

Boolean data type

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Chris Mason (talk | contribs) at 05:00, 18 February 2005. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computer science, the boolean datatype, sometimes called the logical datatype is a primitive datatype having two values, true and false.

This datatype is supported by boolean operations such as and (AND, &&), or (OR, ||), exclusive or/not equivalent (xor, NEQV), equal (=, ==) and not (NOT, !) which correspond to the operations of Boolean algebra.

Fortran

The LOGICAL keyword and associated operations .NOT., .AND., .OR., etc. were introduced in the 1950s, before Fortran was standardized.

Algol

Algol 60 had a boolean datatype and associated operations, defined in the Algol 60 report. This was abbreviated to bool in ALGOL 68.

C and C++

In the C programming language, there is no boolean type provided (true for ANSI C, but not for C99 C), but true/false values are determined by comparing a value to zero. For instance, the C code

if (my_variable) {
  printf("True!\n");
} else {
  printf("False!\n");
}

does the exact same thing as

if (my_variable != 0) {
  printf("True!\n");
} else {
  printf("False!\n");
}

This is straightforward for integer datatypes; because floating-point values are prone to rounding error, they should not be compared for equality. Traditionally, integers are used to contain one (or more) boolean variables, one for each bit of the integer.

While it is not necessary to name the true and false values in order to test variables for truth or falsehood, it is necessary to do so in order to assign values to them. (It's still possible to do so using the numbers zero and one, but this is clunky.) The enum keyword allows for naming elements:

typedef enum _boolean { FALSE, TRUE } boolean;
...
boolean b;

However, it is seldom used. Rather, simple integers are used along with the following preprocessor macros.

#define FALSE 0
#define TRUE 1
...
int f = FALSE;

The C++ programming language introduced the bool, true and false keywords, adding a native datatype to support boolean data.

Perl

In the Perl programming language, there is no distinction between numbers, strings and other non-aggregate data types. (They are all called "scalar".) Aggregate types with at least one element, non-empty strings (with the exception of "0") and integers with a non-zero value are considered to be true. There are scalars such as 0.0 and 0E0 which are "zero but true". There are no built-in true or false constants in Perl.

Visual Basic=

In the Visual Basic programming language, a boolean data type exists. Boolean values from comparisons can be stored in boolean data type variables as well. For example:

intMyNumber = 100 IsSmall = intMyNumber < 10

In this case IsSmall is assigned the value "intmynumber < 10" IsSmall = intMyNumber < 10 IsSmall = (100) < 10 'My Number = 100 IsSmall = False '100 is not less then 10