Hoppa till innehållet
Hem

Boolsk datatyp

En datatyp som representerar tvåvärd logik (sant/falskt). Beskrivning, representation i programmeringsspråk, historik, vanliga användningsområden och viktiga skillnader mot 'truthy' värden.

Översikt

En boolsk datatyp är en grundläggande typ inom datavetenskap och programmering som kan anta två distinkta värden: sant eller falskt. Den används för att uttrycka logiska villkor och utvärderas i kontrollflöden som if-satser, loopar och villkorliga uttryck. I de flesta språk skrivs värdena med reserverade ord som true/false, True/False eller 1/0 beroende på syntax och språkets konventioner.

Bildgalleri

1 Bild

Egenskaper och representation

Boolska värden är nära knutna till boolesk algebra, där operationer som AND, OR och NOT kombinerar eller inverterar sanning. I programmeringsspråk motsvaras dessa ofta av operatorer som &&, || och !, eller språkberoende namn som and, or, not. Internt representeras ett boolskt värde vanligtvis som en enda bit konceptuellt, men många språk och system reserverar en byte eller mer för enklare adressering och prestanda.

  • Vanliga operatorer: AND, OR, NOT (&&, ||, !)
  • Konventioner: true/false, True/False eller 0/1
  • Intern representation: ofta en byte, men varierar mellan språk och plattform

Historik och namngivning

Namnet kommer från matematikern George Boole, som på 1800-talet formulerade regler för symbolisk logik som senare blev grunden för digital kretsdesign och programmeringslogik. I moderna programmeringsspråk infördes en dedikerad boolsk typ i olika skeden; som exempel standardiserades bool i C++-standarden 1998. Begreppet i sig är dock betydligt äldre och härrör direkt från boolesk algebra.

Användningsområden och exempel

Boolska typer används allmänt för att styra beslutsfattande i program och för att uttrycka predikat (sanningstest). Exempel på vanliga användningar är:

  • Villkorssatser (if, switch) och loopar (while, for)
  • Flaggor och konfigurationsalternativ (till exempel en DEBUG-flagga)
  • Bitmasker och logiska uttryck i filter och sökningar
  • Funktionspredikat som returnerar sant/falskt för att beskriva egenskaper hos data

I många språk förekommer även begreppet "truthiness": vissa icke-boolska värden tolkas som sanna eller falska i ett logiskt sammanhang (till exempel tomma strängar eller noll i vissa språk). Det skiljer sig från strikt boolsk typkontroll där endast riktiga booleanvärden accepteras.

Skillnader, fallgropar och notabla fakta

Det finns flera viktiga skillnader att känna till mellan olika språk och domäner. I SQL till exempel införs ofta trevärd logik där NULL leder till ett tredje tillstånd (UNKNOWN), vilket påverkar jämförelser och villkor. I dynamiska språk som Python eller JavaScript kan objekt och tal ha "truthy" eller "falsy" karaktär, vilket betyder att värden som 0, "" eller [] kan behandlas som falska i villkor även om de inte är av typen bool.

Andra praktiska noteringar: kortslutningsutvärdering (short-circuit) gör att högerledet i ett logiskt uttryck inte alltid körs; detta används ofta för att undvika onödiga beräkningar eller undvika fel (till exempel kontroll före åtkomst). Vid interoperabilitet mellan språk och vid systemnivå kan man också behöva översätta mellan olika representationer av sant/falskt.

För en fördjupning om hur uttryck utvärderas och byggs upp, se även boolska uttryck.

Exempel

Ett exempel på en boolean i psuedokod:

if (Boolean_Expression) { Yes_Statement_1 ...  Yes_Statement_Last } else { No_Statement_1 ...  No_Statement_Last }


 Boolska datatyper kan också användas tillsammans med andra boolska data i villkorliga uttalanden med hjälp av en konjunktionsoperatör. Till exempel:

if (Boolean_Expression1 och Boolean_Expression2) { Yes_Statement_First ...  Yes_Statement_Last } else { No_Statement_First ...  No_Statement_Last }


 Det kan också användas med en disjunktion:

if (Boolean_Expression1 eller Boolean_Expression2) { Yes_Statement_First ...  Yes_Statement_Last }
 

Frågor och svar

F: Vad är en boolesk datatyp?

S: En boolesk datatyp är en datatyp som kan ha antingen ett av två värden: sant eller falskt.

F: Vem lade ursprungligen till den booleska datatypen i C++-språket?

S: Den booleska datatypen lades ursprungligen till i C ++ -språket av ISO / ANSI-kommittén 1998.

F: Vem är George Boole, och varför är booleska uttryck uppkallade efter honom?

S: George Boole var en engelsk matematiker som formulerade regler för matematisk logik. Booleska uttryck är uppkallade efter honom eftersom de följer samma principer för logiskt resonemang som han utvecklade.

F: Vad är syftet med att använda booleska uttryck i programmering?

S: Booleska uttryck används i förgrenings- och looping-satser och kan användas med villkorssatser för att säkerställa att vissa satser endast sker när rätt villkor är uppfyllt.

F: Kan en boolesk datatyp ha andra värden än true och false?

S: Nej, en boolesk datatyp kan bara tilldelas ett av två värden: sant eller falskt.

F: Vad är betydelsen av att booleska uttryck bara har ett värde av true eller false?

S: Betydelsen av att booleska uttryck endast har värdet true eller false är att de möjliggör tydliga och exakta logiska resonemang och kan användas för att fatta beslut i förgrenings- och looping-satser.

F: När lades den booleska datatypen till i C++-språket?

S: Den booleska datatypen lades till i C++-språket av ISO/ANSI-kommittén 1998.

Relaterade artiklar

Författare

AlegsaOnline.com Boolsk datatyp

URL: https://sv.alegsaonline.com/art/13013

Dela