Boolesk typ

Boolesk datatyp , eller boolesk typ, eller boolesk typ (från engelskan.  Boolesk eller logisk datatyp ) är en primitiv datatyp inom datavetenskap som tar två möjliga värden, ibland kallade true ( true) och false ( false) . Det finns i de allra flesta programmeringsspråk som en oberoende enhet eller implementeras genom en numerisk datatyp. Vissa programmeringsspråk använder 1 för sant och 0 för falskt  .

Typnamnet Boolean gavs för att hedra den engelske matematikern och logikern George Boole , som bland annat sysslade med matematisk logik i mitten av 1800-talet .

Implementering

En boolesk datatyp kan implementeras och lagras i minnet med endast en bit , men den minsta adresserbara minnesplatsen (vanligtvis en byte eller maskinord ) används vanligtvis som en mer prestandaeffektiv lagringsenhet när man hanterar processorregister och RAM .

Tillgängliga operationer med denna datatyp

Följande operationer är tillämpliga på denna datatyp, symboliska beteckningar på operationer i vissa populära programmeringsspråk anges inom parentes:

Andra booleska algebraoperationer kan också användas , som Pierces pil eller Schaeffers slag . De flesta programmeringsspråk tillåter dig att använda den booleska typen av variabler och konstanter i aritmetiska operationer, först casta den till en numerisk typ, enligt typkonverteringsreglerna som antagits i språket.

Applikation

Den traditionella användningen av den booleska datatypen är ja/nej-värden för resultatet av en sifferjämförelse i mer komplexa operationer.

Alla operationer för att jämföra två kvantiteter - reella variabler och heltalsvariabler eller en konstant med en variabel (lika, större, mindre), funktionerna för att kontrollera medlemskapet av en förekomst av ett element i en uppsättning och kontrollera om det inte finns tomhet i skärningspunkten mellan sets returnerar en boolesk typ som ett resultat.

Implementering i olika programmeringsspråk

Ada

Programmeringsspråket Ada definierar Booleani standardpaketet som en uppräknad typ med värden Falseoch Truei vilken False< True.

typen Boolean är ( falskt , sant ); p : Boolean := Sant ; om p ... sluta om ;

Relaterade operatorer ( =, /=, <, <=, >, >=) gäller för alla uppräknade typer, inklusive Boolean. De booleska operatorerna and, oroch gäller för typen xoroch eventuella deklarerade undertyper. Booleska operatorer gäller även för arrayer som innehåller . notBooleanBoolean

Algol

Algol 60 har den datatyp booleanoch motsvarande operatorer som anges i Algol 60-specifikationen. Datatypen har förkortats till boolALGOL 68 .

C

I programmeringsspråket C , som inte gav booleska värden i C89 (men introducerar i C99 ), introducerades värdejämförelse med noll istället för sanna/falska värden. Till exempel, kod:

if ( bool_variable ) printf ( "Sant! \n " ); else printf ( "Falskt! \n " );

motsvarar kod:

if ( bool_variabel != 0 ) printf ( "Sant! \n " ); else printf ( "Falskt! \n " );

Detta gällde för heltalsdatatypen (heltal); dock var de binära värdena för flyttal (flyttal) nära de decimalvärden som visades på skärmen, och detta gav fel vid jämförelse. Traditionellt innehöll ett heltal en (eller flera) booleska variabler (en för varje bit av heltal).

Haskell

I Haskell är den booleska datatypen implementerad som den enklaste algebraiska datatypen :

data bool = false | Sann

I standardmodulen Data.Boolär funktionerna &&och definierade ||för den not.

Python

I Python betecknas en boolesk datatyp som bool, för att konvertera andra datatyper till en boolean finns det en funktion bool()som fungerar enligt följande konventioner:

  • strängar: tom sträng - falskt, icke-tom sträng - sant;
  • tal: nolltal - falskt, icke-nolltal (inklusive mindre än ett) - sant;
  • listor och tupler: tom lista (tuppel) - falsk, icke-tom (innehåller även ett element, till exempel en tom tuppel) - sant;
  • funktioner är alltid sant.

För andra objekt beräknas resultatet via metoden __nonzero__, som helst bör returnera Trueeller värden False.

Den booleska typen castas till följande datatyper:

  • sträng: Trueför sant, Falseför falskt;
  • numeriska (inbyggda typer intoch float): 1 för sant, 0 för falskt.

Boolesk typ castas inte till andra datatyper.

Python 2.6 har en intressant funktion - du kan omdefiniera värdet Truetill Falseoch vice versa genom att bara skriva:

sant = falskt

eller ett alternativ för hela omfattningen

__builtins__ . sant = falskt

vilket kan leda till mycket oväntat beteende hos tolken eller IDLE. I Python 3 har denna funktion tagits bort - Trueoch Falseanses vara reserverad, som ordet None.

Pascal

Beskrivning av variabler:

var a , b : Boolean

Aritmetiska operationer på booleaner är inte tillåtna, men logiska operationer är tillåtna: Not, And, Or, Xor, relationsoperationer = (lika med), <> (inte lika med), och funktioner Ord, Pred, Succ.

var A , B : Byte ; C , D , E , F : Boolean ; börja A := Ord ( Falskt ) ; {A=0} B := Ord ( Sant ) ; {B=1} C := Pred ( Falskt ) ; {error} D := Pred ( Sant ) ; {D=False} E := Succ ( False ) ; {E=True} F := Succ ( True ) ; {error} slut .

Ruby

I Ruby representeras en boolesk typ av två fördefinierade variabler : trueoch false. En boolesk typ visas som ett resultat av logiska operationer eller anropande av logiska metoder . Av tradition slutar namnet på logiska metoder (det vill säga metoder som returnerar ett värde på sant eller falskt) med "?".

Det falsekan vara nil, och kvaliteten kan vara true vilket objekt som helst , inklusive en variabel med värdet "0" eller en tom sträng , vilket ofta är en överraskning för nybörjare.

Se även