Tip boolean

Tipul de date boolean sau tipul boolean sau tipul boolean (din engleză. Tipul de date  boolean sau logic ) este un tip de date primitiv în informatică care ia două valori posibile, numite uneori adevărat ( adevărat) și fals ( fals) . Este prezent în marea majoritate a limbajelor de programare ca entitate independentă sau este implementat printr-un tip de date numerice. Unele limbaje de programare folosesc 1 pentru adevărat și 0 pentru fals  .

Numele de tip Boolean a fost dat în onoarea matematicianului și logicianului englez George Boole , care, printre altele, s-a ocupat de logica matematică la mijlocul secolului al XIX-lea .

Implementare

Un tip de date boolean poate fi implementat și stocat în memorie folosind doar un bit , dar locația minimă de memorie adresabilă (de obicei un octet sau un cuvânt de mașină ) este de obicei folosită ca o unitate de stocare mai eficientă din punct de vedere al performanței atunci când se ocupă cu registrele procesorului și RAM .

Operațiuni disponibile cu acest tip de date

Următoarele operațiuni sunt aplicabile acestui tip de date, denumirile simbolice ale operațiilor în unele limbaje de programare populare sunt indicate între paranteze:

Alte operații de algebră booleană pot fi, de asemenea, utilizate , cum ar fi săgeata lui Pierce sau cursa lui Schaeffer . Majoritatea limbajelor de programare vă permit să utilizați variabile și constante de tip boolean în operații aritmetice, mai întâi turnându-l într-un tip numeric, conform regulilor de conversie a tipului adoptate în limbaj.

Aplicație

Utilizarea tradițională a tipului de date boolean este valorile da/nu pentru rezultatul unei comparații de numere în operațiuni mai complexe.

Toate operațiile de comparare a două mărimi - variabile reale și întregi sau o constantă cu o variabilă (egale, mai mare, mai mică), funcțiile de verificare a apartenenței unei apariții a unui element într-o mulțime și de verificare a nevidității intersecției ca rezultat, seturile returnează un tip boolean.

Implementare în diverse limbaje de programare

Ada

Limbajul de programare Ada definește Booleanîn pachetul Standard ca un tip enumerat cu valori Falseși Trueîn care False< True.

tipul boolean este ( False , True ); p : Boolean := Adevărat ; dacă p atunci ... sfârşitul dacă ;

Operatorii înrudiți ( =, /=, <, <=, >, >=) se aplică tuturor tipurilor enumerate, inclusiv Boolean. Operatorii booleeni and, orși xorse notaplică tipului Booleanși oricăror subtipuri declarate. Operatorii booleeni se aplică și matricelor care conțin Boolean.

Algol

Algol 60 are tipul de date booleanși operatorii corespunzători prevăzuți în specificația Algol 60. Tipul de date a fost scurtat la boolALGOL 68 .

C

În limbajul de programare C , care nu a furnizat valori booleene în C89 (dar introduce în C99 ), în loc de valori adevărate/false, a fost introdusă compararea valorii cu zero. De exemplu, codul:

if ( bool_variable ) printf ( "Adevărat! \n " ); else printf ( "Fals! \n " );

este echivalent cu codul:

if ( bool_variable != 0 ) printf ( "Adevărat! \n " ); else printf ( "Fals! \n " );

Acest lucru a fost valabil pentru tipul de date întreg (întreg); cu toate acestea, valorile binare ale numerelor în virgulă mobilă (virgulă mobilă) erau apropiate de valorile zecimale afișate pe ecran, ceea ce a dat erori la comparare. În mod tradițional, un număr întreg conținea una (sau mai multe) variabile booleene (una pentru fiecare bit al numărului întreg).

Haskell

În Haskell , tipul de date boolean este implementat ca cel mai simplu tip de date algebrice :

date bool = false | Adevărat

În modulul standard , Data.Boolfuncțiile și sunt definite pentru acesta . &&||not

Python

În Python , un tip de date boolean este notat ca bool, pentru a converti alte tipuri de date într-un tip boolean, există o funcție bool()care funcționează conform următoarelor convenții:

  • șiruri de caractere: șir gol - fals, șir nevid - adevărat;
  • numere: număr zero - fals, număr diferit de zero (inclusiv mai mic de unu) - adevărat;
  • liste și tupluri: listă goală (tuplu) - fals, nevid (chiar care conține un element, cum ar fi un tuplu gol) - adevărat;
  • funcțiile este întotdeauna adevărată.

Pentru alte obiecte, rezultatul este calculat prin metoda __nonzero__, care ar trebui să returneze în mod ideal Truevalorile False.

Tipul boolean este distribuit la următoarele tipuri de date:

  • șir: Truepentru adevărat, Falsepentru fals;
  • numeric (tipuri încorporate intși float): 1 pentru adevărat, 0 pentru fals.

Tipul boolean nu este transmis către alte tipuri de date.

Python 2.6 are o caracteristică interesantă - puteți redefini valoarea Trueși Falseinvers scriind doar:

adevărat = fals

sau, o opțiune pentru întregul domeniu

__builtins__ . adevărat = fals

ceea ce poate duce la un comportament foarte neașteptat al interpretului sau IDLE. În Python 3, această caracteristică a fost eliminată - Trueși Falseeste considerată rezervată, ca și cuvântul None.

Pascal

Descrierea variabilelor:

var a , b : boolean

Operațiile aritmetice pe boolean nu sunt permise, dar sunt permise operații logice: Not, And, Or, Xor, operații relaționale = (egal cu), <> (nu este egal cu) și funcțiile Ord, Pred, Succ.

var A , B : Octet ; C , D , E , F : Boolean ; începe A := Ord ( False ) ; {A=0} B := Ord ( Adevărat ) ; {B=1} C := Pred ( Fals ) ; {eroare} D := Pred ( Adevărat ) ; {D=Fals} E := Succ ( Fals ) ; {E=Adevărat} F := Succ ( Adevărat ) ; {eroare} sfârșit .

Ruby

În Ruby , un tip boolean este reprezentat de două variabile predefinite : trueși false. Un tip boolean apare ca rezultat al operațiilor logice sau al invocării unor metode logice . Prin tradiție, numele metodelor logice (adică metodele care returnează o valoare adevărată sau falsă) se termină cu „?”.

Poate falsefi nil, iar calitatea poate fi true orice obiect , inclusiv o variabilă cu valoarea „0” sau un șir gol , ceea ce este adesea o surpriză pentru începători.

Vezi și