Boolean datatype
From Freepedia
In computer science, the boolean datatype, sometimes called the logical datatype is a primitive datatype having two values, one and zero (in English: 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.
Contents |
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 C89, but not for C99), 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; however, binary floating-point values are approximations of displayed decimal values and so should not normally be compared for equality. Traditionally, integers are used to contain one (or more) boolean variables, one for each digit 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. (One way is to use the values zero and one, which have the advantage of being language-independent.) Alternatively, the enum keyword allows for naming elements in the language of your choice, for example:
typedef enum _boolean { FALSE, TRUE } boolean;
...
boolean b;
However, enum is seldom used for this; instead, the 0 and 1 values are used with the following typical 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.
Ada
Ada defines Boolean in the package Standard as an enumerated type with values False and True where False < True.
type Boolean is (False, True);
p : Boolean := True; ... if p then ... end if;
The relational operators ("=","/=","<","<=",">",">=") apply to all enumerated types, including Boolean. Boolean operators and, or, xor and not are defined on Boolean and any declared subtype. The boolean operators also apply to arrays of Boolean values.
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, boolean values from comparisons can be stored in variables with the boolean data type, which is stored as a two-byte integer but can only have the values True and False. For example:
Dim isSmall As Boolean
isSmall = intMyNumber < 10 ' Expression evaluates to True or False
If isSmall Then
MessageBox.Show("The number is small")
Endif
Dim hellFreezesOver As Boolean 'Boolean variables are initialized as False hellFreezesOver = False 'Or you can use an assignment statement Do Until hellFreezesOver Call CheckAndProcessUserInput() Loop
Java
In the Java programming language, Boolean variables are represented by the type boolean, which is 1 byte long. No explicit or implicit casts to or from boolean are permitted, i.e.
int i = 5;
if (i) System.out.println("I is five");
Will produce errors. Code to ouput a boolean could be represented like this:
boolean myBool = (i==5); System.out.println(myBool ? "I = 5" : "I != 5");
Ocaml
Ocaml has a bool type that can get either either true and false values.
# 1 = 1 ;; - : bool = true
Like other enumerated types, a value of this type uses a word of memory.
ML
Like Ocaml, ML has a bool type that has true and false values.
Eg:
- fun isitture x = if x then "YES" else "NO" (* NOTE INCORRECT SPEELING, OOPS *); > val isitture = fn : bool -> string - isitture true; > val it = "YES" : string - isitture false; > val it = "NO" : string - isitture (8=8); > val it = "YES" : string - isitture (7=5); > val it = "NO" : string
C#
In C#, Boolean variables are represented by the type bool, which is 1 byte long.
Will produce errors. Code to output a boolean could be represented like this:
bool myBool = (i==5); System.Console.WriteLine(myBool ? "I = 5" : "I != 5");
BrainFuck
BrainFuck does not have built in boolean datatypes: Indeed, there is no simple if-then-else structure. However, the character [ means "loop while the value of the current byte pointed to is non-zero.
Thus, if can be replicated by the following, if the current byte contains either 1 (true) or 0 (false).
[(Some brainfuck code)-]
Lambda Calculus
In the Lambda Calculus formal model of computing, booleans are represented as Church booleans.



