|
In computer science, the Boolean datatype, sometimes called the logical datatype, is a primitive datatype having one of two values: non-zero (often 1, or -1) and zero (which are equivalent to true and false, respectively). It is the special case of a binary numeric datatype of only one digit, or bit, and can also be represented in any other radix by restricting the range of allowed values for certain operations. Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. ...
Boolean algebra is the finitary algebra of two values. ...
In computer science, primitive types, as distinct from composite types - are datatypes provided by a programming language as basic building blocks. ...
In logic, a truth value, or truth-value, is a value indicating to what extent a statement is true. ...
The binary numeral system, or base-2 number system, is a numeral system that represents numeric values using two symbols, usually 0 and 1. ...
This article is about the unit of information. ...
The radix (Latin for root), also called base, is the number of various unique symbols (or digits or numerals) a positional numeral system uses to represent numbers. ...
In some languages the Boolean datatype is defined to represent more than two truth values. For instance the ISO SQL:1999 standard defined a Boolean data type for SQL which could hold three possible values: true, false, unknown (SQL null is treated as equivalent to the unknown truth value, but only for the Boolean data type). The Greek lowercase omega (Ï) character is historically used by academics to represent Null in relational databases. ...
This datatype is used in Boolean and other operations such as and (AND, &, *), or (OR, |, +), exclusive or/not equivalent (xor, NEQV, ^), equal (EQV, =, ==) and not (NOT, ~, !) which correspond to some of the operations of Boolean algebra and arithmetic. AND Logic Gate In logic and mathematics, logical conjunction (usual symbol and) is a two-place logical operation that results in a value of true if both of its operands are true, otherwise a value of false. ...
OR logic gate. ...
Exclusive disjunction, also known as exclusive or and symbolized by XOR or EOR, is a logical operation on two operands that results in a logical value of true if and only if one of the operands, but not both, has a value of true. ...
In logic, statements p and q are logically equivalent if they have the same logical content. ...
Negation (i. ...
Boolean algebra is the finitary algebra of two values. ...
Arithmetic tables for children, Lausanne, 1835 Arithmetic or arithmetics (from the Greek word αÏιθμÏÏ = number) is the oldest and most elementary branch of mathematics, used by almost everyone, for tasks ranging from simple day-to-day counting to advanced science and business calculations. ...
Ada Ada defines Boolean in the package Standard as an enumerated type with values False and True where False < True. Ada is a structured, statically typed imperative computer programming language designed by a team led by Jean Ichbiah of CII Honeywell Bull during 1977â1983. ...
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.
Algol Algol 60 had a Boolean datatype and associated operations, defined in the Algol 60 report. This was abbreviated to bool in ALGOL 68.[1] ALGOL (short for ALGOrithmic Language) is a programming language originally developed in the mid 1950s which became the de facto standard way to report algorithms in print for almost the next 30 years. ...
ALGOL 68 (short for ALGOrithmic Language 1968) is an imperative computer programming language that was conceived as a successor to the ALGOL 60 programming language, designed with the goal of a much wider scope of application and a more rigorously defined syntax and semantics. ...
An actual extract from the ALGOL 68 language specification (page 177) where the boolean operators are defined: 10.2.2. Operations on Boolean Operands - op ∨ = (bool a, b) bool:( a | true | b );
- op ∧ = (bool a, b) bool: ( a | b | false );
- op ¬ = (bool a) bool: ( a | false | true );
- op = = (bool a, b) bool:( a∧b ) ∨ ( ¬b∧¬a );
- op ≠ = (bool a, b) bool: ¬(a=b);
- op abs = (bool a)int: ( a | 1 | 0 );
C Prior to C99, the standards for the C programming language provided no Boolean type. This however does not mean that C90 cannot represent the concept of boolean values, as all the boolean operators (&&, ||) and conditional statements (if, while) in C interpret nonzero values to signify true and zero values to signify false. Thus, it is common to store boolean values in variables of another type, such as an integer or an enum. For convenience, it is also common to create a typedef for a boolean type, which resolves to some existing datatype. The C99 standard also provides a built-in boolean type. C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ...
C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ...
typedef is a keyword in the C Programming Language. ...
C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ...
To illustrate Booleans in C, note that the C code: if (my_variable) { printf("True!n"); } else { printf("False!n"); } is equivalent to: if (my_variable != 0) { printf("True!n"); } else { printf("False!n"); } This is straightforward for integer datatypes. Since C standards mandate that 0 be interpreted as the null pointer when used in a pointer context or cast to a pointer, the above construct can also be used to check a pointer for NULL, although some code styles discourage this use. While the same conditional is also valid for floating-point values, special care must be taken when comparing them for equality, since they often contain rounded results. Traditionally, integers are used to contain boolean variables. Not to be confused with Natural number. ...
In the C Programming Language, a null pointer is a special pointer which is guaranteed to compare unequal to a pointer to any object or function. ...
This article or section is in need of attention from an expert on the subject. ...
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: In computer programming, an enumerated type is an abstract data type used to model an attribute that has a specific number of options (or identifiers) such as the suit of a playing card (i. ...
typedef enum { FALSE, TRUE } boolean; ... boolean b; The following typical preprocessor macros are also often used. The C preprocessor (cpp) is the preprocessor for the C programming language. ...
#define FALSE 0 #define TRUE 1 ... int f = FALSE; Sometimes TRUE may be defined as -1 or ~0 (the bitwise complement of zero). This means that all bits of the integer are set to 1, on the now common two's complement computer architectures. The twos complement of a binary number is defined as the value obtained by subtracting the number from a large power of two (specifically, from 2N for an N-bit twos complement). ...
However, problems arise from the fact that any non-zero value represents true in C, while the value TRUE is represented by a specific value. So while in other languages, if (foo == TRUE) ... is merely redundant, in C, it is actually incorrect code.
C99 In C99, there is a bool type, along with the values true and false, defined in the <stdbool.h> header: The header stdbool. ...
#include <stdbool.h> bool b = false; ... b = true; C++ During its standardization process, the C++ programming language introduced the bool, true and false keywords, adding a native datatype to support boolean data. Its size is implementation defined.[2] bool was introduced in 1993[3]. C++ (pronounced ) is a general-purpose programming language. ...
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ...
The 1998 C++ Standard Library defines a specialization of the vector<bool> class. To optimize space, the elements are packed so that every bool only uses one bit of memory. This is widely considered a mistake. vector<bool> does not meet the requirements for a STL container. For instance, a container<T>::reference must be a true lvalue of type T. This is not the case with vector<bool>. Similarly, the vector<bool>::iterator does not yield a bool& when dereferenced. There is a general consensus among the C++ Standard Committee and the Library Working Group that vector<bool> should be deprecated or entirely removed from the next version of the standard.[4][5] In computer science, a value may be a number, literal string, array and anything that can be treated as if it were a number. ...
The dereference operator or indirection operator, *, is a unary operator found in C-like languages that include pointer variables. ...
C# In C#, Boolean variables are identified through the reserved word bool, which is an alias for the predefined struct type System.Boolean. It occupies one byte. No standard conversions exist between bool and other types. The language also provides a boolean type DBbool that can represent three values: true, false, and null. This is similar to the type used for boolean expressions in SQL[6] The title given to this article is incorrect due to technical limitations. ...
For other users of the word/name byte, see byte (disambiguation). ...
SQL (IPA: or ) is a computer language designed for the retrieval and management of data in relational database management systems, database schema creation and modification, and database object access control management. ...
Code to output a Boolean could be represented like this: bool myBool = (i == 5); System.Console.WriteLine(myBool ? "I = 5" : "I != 5"); Fortran The LOGICAL keyword and associated operations .NOT., .AND., .OR., etc. were introduced in the 1950s, before Fortran was standardized. The 1950s decade refers to the years 1950 to 1959 inclusive. ...
Fortran (previously FORTRAN[1]) is a general-purpose[2], procedural,[3] imperative programming language that is especially suited to numeric computation and scientific computing. ...
Java In the Java programming language, boolean variables are represented by the primitive type boolean. The Java Virtual Machine (JVM) abstracts away from the actual representation in memory, so JVM writers can represent booleans in whatever manner is convenient (for example, one byte, or one word). Java language redirects here. ...
A Java Virtual Machine (JVM) is a set of computer software programs and data structures which implements a specific virtual machine model. ...
In computing, word is a term for the natural unit of data used by a particular computer design. ...
The Java Language Specification does not permit any explicit or implicit casts to or from boolean. Thus, it requires the compiler to reject this code: This article needs cleanup. ...
int i = 1; if (i) System.out.println("i is not zero."); else System.out.println("i is zero."); because the integer variable i cannot be cast to a boolean, and the if statement requires a boolean condition.[7] In Java, boolean values (like other primitive types) can be appended to Strings. This feature provides a default visual representation of a boolean (true is displayed as "true" and false as "false").[7]
JavaScript JavaScript has two keywords true and false, both of which are written in lowercase. It is a weakly typed language and does not have an explicit Boolean datatype for its variables. However many values will evaluate to false when used in a logical context, including zero, null, zero length strings, and unknown properties of objects. All other variable values, including empty arrays and empty objects, will evaluate to true. The language does offer a Boolean object which can be used as a wrapper for handling boolean values. The Boolean object will always evaluate to true even if it has a value of false. JavaScript is a scripting language most often used for client-side web development. ...
var objBool = new Boolean(false); if ( false || 0 || "" || null || window.not_a_property ) { alert("never this"); } else if ( true && [] && {} && objBool ) { alert("Hello Wikipedia"); // will bring up this message } Lambda calculus In the lambda calculus formal model of computing, booleans are represented as Church booleans. The lambda calculus is a formal system designed to investigate function definition, function application, and recursion. ...
In computer science, a Church boolean is a conceptual function that takes two lazy evaluation parameters (such as blocks or lambdas) and evaluates either the first or the second. ...
Lisp Lisp has two special symbols T and NIL which represent the logical values of true and false respectively. However, any non-NIL value is interpreted by a LISP system as true. The special symbol NIL is also represented by (), the empty list. So the empty list is false, but any list with data has the logical value of true. Therefore "nothing" is false and everything else is true. âLISPâ redirects here. ...
ML Like Ocaml, ML has a bool type that has true and false values. For example: ML is a general-purpose functional programming language developed by Robin Milner and others in the late 1970s at the University of Edinburgh, whose syntax is inspired by ISWIM. Historically, ML stands for metalanguage as it was conceived to develop proof tactics in the LCF theorem prover (the language of...
- fun isittrue x = if x then "YES" else "NO" ; > val isittrue = fn : bool -> string - isittrue true; > val it = "YES" : string - isittrue false; > val it = "NO" : string - isittrue (8=8); > val it = "YES" : string - isittrue (7=5); > val it = "NO" : string Objective-C Objective-C provides a type BOOL, and macros YES and NO. Since Objective-C is a superset of C, C language semantics for booleans also apply. Objective-C, often referred to as ObjC or more seldomly as Objective C or Obj-C, is an object oriented programming language implemented as an extension to C. It is used primarily on Mac OS X and GNUstep, two environments based on the OpenStep standard, and is the primary language...
C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ...
In computer science, the Boolean datatype, sometimes called the logical datatype, is a primitive datatype having one of two values: non-zero (often 1, or -1) and zero (which are equivalent to true and false, respectively). ...
Ocaml Ocaml has a bool type that has true and false values. Objective Caml (OCaml) is a general-purpose programming language descended from the ML family, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy and others in 1996. ...
# 1 = 1 ;; - : bool = true Like other enumerated types, a value of this type uses a word of memory.
Pascal Boolean is a basic datatype provided by Pascal. Its definition and uses: Pascal is a structured imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ...
var value: Boolean; ... value := True; value := False; if value then begin ... end; 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 without any elements, empty strings, numbers which equal a value of 0, the strings "" and "0", and undefined variables evaluate to "false" when used in a Boolean context. All other values (including strings such as 0.0 and 0E0 which are "zero but true") evaluate to "true". For other uses, see Perl (disambiguation). ...
Elements of aggregates may also be tested against "existence" or "non-existence"[1], and all variables may be evaluated as either "defined" or "undefined".[2] (An element of a hash or array that has been assigned the value undef exists but is undefined.) In Perl this distinction is important when evaluating scalars in a boolean manner to prevent "false falses" where one of the above values should be considered "true". There are no built-in true or false constants in Perl 5, however the values do exist internally in Perl6. Perl 6 is the next version of the Perl programming language, currently under development. ...
1 is traditionally used for true, and constructs such as ... while 1 are special-cased to avoid advisory warnings. Internally, recent versions of Perl 5 have a variety of predefined yesses and nos, so that the recommended way to provide a false value has recently shifted from undef to !1 .
PHP PHP has a boolean datatype [8] with two values: true and false (case doesn't matter). $var = true; $var = false; print $var == true ? "T" : "F"; print $var === true ? "T" : "F"; print is_bool($var) ? "T" : "F"; print gettype($var); Several values evaluate to a logical false [9] with the loose comparison operator ==. There are generally empty instances of a type, or are considered equivalent to the number 0. These vales are: Zero redirects here. ...
- false
- zero
- "0"
- NULL
- empty array
- empty string
PHP programmers wishing to distinguish a boolean variable set to false from other types of variable must use the strict comparison operator ===.
Python The Python programming language defines True and False values as its boolean type, as well as allowing all objects to be tested for their truth value. The following values are considered false: Python is a general-purpose, high-level programming language. ...
- Numeric zero, None, False.
- Empty containers such as empty strings, lists, tuples, dicts and sets.
- User defined object instances have control over their boolean value through special methods
__nonzero__[10] and __len__. In all other cases, objects are considered true. Boolean operators and boolean built-in types always return one of the boolean values True and False except for the operators "or" and "and" which return one of their operands (from left to right, the first operand that determines the boolean value of the expression).[11] >>> class spam: pass # spam is assigned a class object. ... >>> eggs = "eggs" # eggs is assigned a string object. >>> spam == eggs # (Note double equals sign for equality testing). False >>> spam != eggs # != and == always return bool values. True >>> spam and eggs # and returns an operand. 'eggs' >>> spam or eggs # or also returns an operand. <class __main__.spam at 0x01292660> >>> Ruby The Ruby programming language does not have a Boolean data type as part of the language. Like many other interpreted languages, all variables are dynamically typed. Instead, ruby defines the explicit values of false and nil, and everything else is considered true, including 0, [ ], and the empty string "". The values true, false, and nil can be assigned to variables, returned from functions or methods, and compared in Boolean expressions. Ruby is a reflective, object-oriented programming language. ...
Ruby is a reflective, object-oriented programming language. ...
a = 0 if (a) print "true" else print "false" end will print "true", which might come as a surprise to a new user of the language. Since Ruby is a pure object-oriented programming language, even the "explicitly" defined values of true, false and nil are objects that each have their own class: Object-oriented programming (OOP) is a programming paradigm that uses objects and their interactions to design applications and computer programs. ...
p false.class p true.class p nil.class Would output "FalseClass", "TrueClass" and "NilClass" respectively.
Scheme Scheme has two special symbols #t and #f which represent the logical values of true and false respectively. However, any non-#f value is interpreted as true. Note that unlike Lisp, nil or '(), the empty list, is separate from #f in Scheme, and therefore is considered true. Scheme is a multi-paradigm programming language. ...
SQL SQL supports three-valued logic (3VL), and comparison predicates in SQL can return any of three possible results: true, false, or unknown. The Boolean datatype was introduced in the ISO SQL:1999 standard, which specified that in addition to the three possible SQL Boolean values, instances of the datatype could be set to null[12]. For DBMSs that implement the ISO SQL:1999 standard, the following code creates a table which holds instances of the Boolean data type. SQL (IPA: or ) is a computer language designed for the retrieval and management of data in relational database management systems, database schema creation and modification, and database object access control management. ...
CREATE TABLE test1 ( a int, b BOOLEAN ); INSERT INTO test1 VALUES (1, true); INSERT INTO test1 VALUES (2, false); INSERT INTO test1 VALUES (3, NULL); -- The SQL:1999 standard says that vendors can use null in place of the -- SQL Boolean value unknown. It is left to the vendor to decide if -- null should be used to completely replace unknown. The standard also -- says that null should be treated as equivalent to unknown, which is an -- inconsistency. The following line may not work on all SQL:1999-compliant -- systems. INSERT INTO test1 VALUES (4, unknown); SELECT * FROM test1; The SQL Boolean data type did not gain widespread adoption, owing to inconsistencies in the standard and lack of support from vendors. Most SQL DBMSs use other data types like bit, byte, and char to simulate the behavior of Boolean data types.
Visual Basic In Visual Basic Boolean values from comparisons can be stored in variables with the Boolean data type, which is stored as a 16-bit signed integer, but should only have the values True(-1) and False(0). For example: This article is about the Visual Basic language shipping with Microsoft Visual Studio 6. ...
Dim isSmall As Boolean isSmall = intMyNumber < 10 ' Expression evaluates to True or False If isSmall Then MsgBox("The number is small") End If Dim hellFreezesOver As Boolean ' Boolean variables are initialized as False hellFreezesOver = False ' Or you can use an assignment statement Do Call CheckAndProcessUserInput() Loop Until hellFreezesOver Note: Although Boolean values should only be -1 or 0, other values can be coerced into them by calling a function with a Variant ByRef parameter. It is highly recommended that you do not do this or the universe will bork. Sub Voo(ByRef v As Variant) v = 1 End Sub Sub Bar(ByRef b As Boolean) b = 1 End Sub Dim b1 As Boolean, b2 As Boolean b1 = True b2 = True Debug.Print (b1 = b2) 'True Call Voo(b2) Debug.Print (b1 = b2) 'False Call Bar(b2) Debug.Print (b1 = b2) 'True XPath and XQuery XML Path Language (XPath 2.0) and XML Query Language (XQuery 1.0) both rely on XML Schema for Boolean data type support. The XML Schema xs:boolean data type supports both true and false Boolean values. XPath and XQuery define a set of rules for calculating the effective Boolean value of expressions. XPath (XML Path Language) is an expression language for addressing portions of an XML document, or for computing values (strings, numbers, or boolean values) based on the content of an XML document. ...
XQuery is a query language (with some programming language features) that is designed to query collections of XML data. ...
This article is about the W3Cs XML Schema language. ...
XPath 1.0 and languages based on it, like XML Stylesheet Language (XSL), also support Boolean data types and implicit calculation of effective Boolean values from non-Boolean expressions.
See also In Unix-like operating systems, true is a command whose only function is to always return the value 0, which is regarded by the shell as the logical value true. ...
In Unix-like operating systems, false is the command that always returns the value 1, which is regarded by the shell as the logical value false. ...
A shell script is a script written for the shell, or command line interpreter, of an operating system. ...
Notes and references - ^ Report on the Algorithmic Language ALGOL 68, Section 10.2.2. (Aug 1968).
- ^ Working Paper for Draft Proposed International Standard for Information Systems-- Programming Language C++ (Dec 1996).
- ^ Evolving a language in and for the real world: C++ 1991-2006 (2007).
- ^ vector<bool>: More Problems, Better Solutions (Aug 1999).
- ^ A Specification to deprecate vector<bool> (Mar 2007).
- ^ C# Language Specifications, online at http://msdn.microsoft.com/en-us/library/aa664483(VS.71).aspx
- ^ a b Java Language Specification, 3rd edition - online at http://java.sun.com/docs/books/jls/
- ^ PHP: Booleans - Manual
- ^ PHP: PHP type comparison tables - Manual
- ^ Special method names: Basic customization. Python Language Reference.
- ^ Boolean operations.
- ^ ISO/IEC. ISO/IEC 9075-1:1999 SQL Standard (pdf format). Section 4.4.3.3. 1999.
|