Logikai adattípus , vagy Boolean típus vagy Boolean típus (az angolból. Boolean vagy logikai adattípus ) egy primitív adattípus a számítástechnikában , amely két lehetséges értéket vesz fel, amelyeket néha igaznak ( igaz) és hamisnak ( hamisnak) neveznek . A programozási nyelvek túlnyomó többségében önálló entitásként van jelen, vagy numerikus adattípuson keresztül valósul meg. Egyes programozási nyelvek 1-et használnak az igaz és 0 -t hamisra .
A Boolean típusnevet George Boole angol matematikus és logikus tiszteletére adták, aki a 19. század közepén többek között matematikai logikával is foglalkozott .
Egy logikai adattípus implementálható és tárolható a memóriában csak egy bit felhasználásával , de a minimális címezhető memóriahelyet (általában egy bájtot vagy gépi szót ) általában teljesítmény-hatékonyabb tárolási egységként használják a processzorregiszterek és a RAM kezelésekor .
A következő műveletek alkalmazhatók erre az adattípusra, egyes népszerű programozási nyelveken a műveletek szimbolikus jelölései zárójelben vannak feltüntetve:
Más Boole-algebrai műveletek is használhatók , mint például Pierce nyila vagy Schaeffer vonása . A legtöbb programozási nyelv lehetővé teszi a logikai típusú változók és konstansok használatát az aritmetikai műveletekben, először numerikus típusba öntve, a nyelvben elfogadott típuskonverziós szabályok szerint.
A Boole-féle adattípus hagyományos használata az igen/nem értékek az összetettebb műveletek szám-összehasonlításának eredményére.
Két mennyiség - valós és egész változók vagy egy változóval (egyenlő, nagyobb, kisebb) való konstans összehasonlításának összes művelete, egy halmazban előforduló elem tagságának ellenőrzése és a metszéspont ürességének ellenőrzése. setek logikai típust adnak vissza.
Az Ada programozási nyelvBoolean a Standard csomagban felsorolt típusként definiál értéket False, Trueamelyben False< True.
type Boolean is ( hamis , igaz ); p : Logikai := Igaz ; if p then ... end if ;A kapcsolódó operátorok ( =, /=, <, <=, >, >=) minden felsorolt típusra vonatkoznak, beleértve a Boolean. andA , orés logikai operátorok a típusra xorés az összes deklarált altípusra vonatkoznak. A logikai operátorok a -t tartalmazó tömbökre is vonatkoznak . notBooleanBoolean
Az Algol 60boolean az Algol 60 specifikációban meghatározott adattípussal és a megfelelő operátorokkal rendelkezik.Az adattípus boolALGOL 68 -ra rövidült .
A C programozási nyelvben , amely nem adott logikai értékeket a C89 -ben (de bevezeti a C99 -be ), az igaz/hamis értékek helyett a nullával való érték-összehasonlítást vezették be. Például kód:
if ( bool_változó ) printf ( "Igaz! \n " ); else printf ( "Hamis! \n " );kóddal egyenértékű:
if ( bool_változó != 0 ) printf ( "Igaz! \n " ); else printf ( "Hamis! \n " );Ez igaz volt az egész adattípusra (integer); azonban a lebegőpontos számok (lebegőpontos) bináris értékei közel voltak a képernyőn megjelenő decimális értékekhez, és ez hibákat okozott az összehasonlítás során. Hagyományosan egy egész szám egy (vagy több) logikai változót tartalmazott (egyet az egész szám minden bitjéhez ).
A Haskellben a logikai adattípus a legegyszerűbb algebrai adattípusként van megvalósítva :
adat bool = false | IgazA szabványos modulban a és Data.Boola függvények hozzá vannak definiálva . &&||not
A Pythonban egy logikai adattípus jelölése bool, más adattípusok logikai értékké alakításához van egy függvény bool(), amely a következő konvenciók szerint működik:
Más objektumok esetén az eredmény kiszámítása a metódussal történik __nonzero__, amely ideális esetben Trueértéket ad vissza False.
A logikai típus a következő adattípusokra kerül átadásra:
A logikai típus nem kerül átadásra más adattípusokra.
A Python 2.6 -nak van egy érdekes funkciója – újradefiniálhatja az értéket True, Falseés fordítva, ha csak annyit ír:
igaz = hamisvagy opció a teljes hatókörre
__beépítettek__ . igaz = hamisami az értelmező vagy az IDLE nagyon váratlan viselkedéséhez vezethet. A Python 3-ban ezt a funkciót eltávolították – Trueés Falsefenntartottnak tekintik, akárcsak a szót None.
A változók leírása:
var a , b : BooleanA logikai műveletek aritmetikai műveletei nem megengedettek, de a logikai műveletek megengedettek: Nem, És, Vagy, Xor, relációs műveletek = (egyenlő), <> (nem egyenlő) és az Ord, Pred, Succ függvények.
var A , B : Byte ; C , D , E , F : Boolean ; begin A := Sorrend ( False ) ; {A=0} B := Sorrend ( Igaz ) ; {B=1} C := Pred ( Hamis ) ; {hiba} D := Pred ( Igaz ) ; {D=Hamis} E := Succ ( False ) ; {E=Igaz} F := Siker ( Igaz ) ; {hiba} vége .A Rubyban egy logikai típust két előre definiált változó képvisel : trueés false. Logikai műveletek vagy logikai metódusok meghívása eredményeként egy logikai típus jelenik meg . A hagyomány szerint a logikai módszerek (vagyis az igaz vagy hamis értéket visszaadó módszerek) neve "?"-re végződik.
Ez falselehet nil, minősége pedig true bármilyen objektum lehet , beleértve a "0" értékű változót vagy egy üres karakterláncot , ami gyakran meglepetés a kezdők számára.
Adattípusok | |
---|---|
Értelmezhetetlen | |
Numerikus | |
Szöveg | |
Referencia | |
Összetett | |
absztrakt | |
Egyéb | |
Kapcsolódó témák |