Boolen tyyppi

Boolean-tietotyyppi tai Boolean-tyyppi tai Boolean-tyyppi ( englanniksi.  Boolean tai logical data type ) on tietojenkäsittelytieteen primitiivinen tietotyyppi , joka ottaa kaksi mahdollista arvoa, joita kutsutaan joskus tosi ( tosi) ja false ( false) . Se on läsnä suurimmassa osassa ohjelmointikieliä itsenäisenä kokonaisuutena tai toteutetaan numeerisen tietotyypin kautta. Jotkut ohjelmointikielet käyttävät arvoa 1 tosi ja 0 epätosi  .

Tyyppinimi Boolean annettiin englantilaisen matemaatikon ja loogikon George Boolen kunniaksi , joka muun muassa käsitteli matemaattista logiikkaa 1800- luvun puolivälissä .

Toteutus

Boolen tietotyyppi voidaan toteuttaa ja tallentaa muistiin käyttämällä vain yhtä bittiä , mutta pienintä osoitettavissa olevaa muistipaikkaa (yleensä tavua tai konesanaa ) käytetään yleensä suoritustehokkaampana tallennusyksikkönä käsiteltäessä prosessorirekistereitä ja RAM -muistia .

Käytettävissä olevat toiminnot tällä tietotyypillä

Seuraavat toiminnot ovat sovellettavissa tälle tietotyypille, joidenkin suosituiden ohjelmointikielten toimintojen symboliset nimitykset on merkitty suluissa:

Myös muita Boolen algebran operaatioita voidaan käyttää , kuten Piercen nuolta tai Schaefferin vetoa . Useimmat ohjelmointikielet antavat sinun käyttää Boolen tyyppisiä muuttujia ja vakioita aritmeettisissa operaatioissa, ensin heittämällä se numeeriseen tyyppiin kielessä hyväksyttyjen tyyppimuunnossääntöjen mukaisesti.

Sovellus

Boolen tietotyypin perinteinen käyttö on kyllä/ei-arvot lukujen vertailun tuloksena monimutkaisemmissa operaatioissa.

Kaikki toiminnot, joissa verrataan kahta suuretta - reaali- ja kokonaislukumuuttujia tai vakiota muuttujan kanssa (saa, suurempi, pienempi), funktiot, joilla tarkistetaan elementin esiintymän kuuluvuus joukkoon ja tarkistetaan, ettei joukon leikkauspiste ole tyhjä. setit palauttavat tuloksena Boolen tyypin.

Toteutus eri ohjelmointikielillä

Ada

Ada-ohjelmointikieli määrittelee BooleanStandard-paketissa lueteltuna tyyppinä arvot Falseja Truejossa False< True.

tyyppi Boolen on ( False , True ); p : Boolen := Tosi ; if p then ... end if ;

Aiheeseen liittyvät operaattorit ( =, /=, <, <=, >, >=) koskevat kaikkia lueteltuja tyyppejä, mukaan lukien Boolean. Boolen operaattorit and, orja koskevat tyyppiä xorja kaikkia ilmoitettuja alatyyppejä. Boolen operaattorit koskevat myös taulukoita, jotka sisältävät . notBooleanBoolean

Algol

Algol 60 : llä on Algol 60 -spesifikaatiossa määritelty tietotyyppi booleanja vastaavat operaattorit.Tietotyyppi on lyhennetty muotoon boolALGOL 68 .

C

C - ohjelmointikielessä , joka ei tarjonnut loogisia arvoja C89 :ssä (mutta ottaa käyttöön C99 :ssä ), tosi/epätosi arvojen sijaan otettiin käyttöön arvojen vertailu nollan kanssa. Esimerkiksi koodi:

if ( bool_muuttuja ) printf ( "Tosi! \n " ); else printf ( "Epätosi! \n " );

vastaa koodia:

if ( bool_muuttuja != 0 ) printf ( "Tosi! \n " ); else printf ( "Epätosi! \n " );

Tämä oli totta kokonaislukutietotyypille (integer); liukulukujen binääriarvot (liukupiste) olivat kuitenkin lähellä näytöllä näkyviä desimaaliarvoja, ja tämä antoi virheitä vertailussa. Perinteisesti kokonaisluku sisälsi yhden (tai useamman) Boolen muuttujan (yksi kutakin kokonaisluvun bittiä kohden ).

Haskell

Haskellissa boolen tietotyyppi on toteutettu yksinkertaisimpana algebrallisena tietotyyppinä :

data bool = false | Totta

Vakiomoduulissa Data.Boolfunktiot &&ja ||määritellään sille not.

Python

Pythonissa loogista tietotyyppiä kutsutaan nimellä , jotta muut tietotyypit muunnetaan booleaniksi bool, on funktio bool(), joka toimii seuraavien sopimusten mukaisesti:

  • merkkijonot: tyhjä merkkijono - epätosi, ei-tyhjä merkkijono - tosi;
  • numerot: nolla luku - epätosi, nollasta poikkeava luku (mukaan lukien pienempi kuin yksi) - tosi;
  • listat ja monikot: tyhjä lista (tuple) - epätosi, ei-tyhjä (jopa sisältää yhden elementin, kuten tyhjän monikon) - tosi;
  • funktiot ovat aina totta.

Muille objekteille tulos lasketaan menetelmällä __nonzero__, jonka pitäisi mieluiten palauttaa Truetai arvot False.

Boolen tyyppi välitetään seuraaville tietotyypeille:

  • merkkijono: Truetosi, Falseepätosi;
  • numeerinen (sisäänrakennetut tyypit intja float): 1 on tosi, 0 epätosi.

Boolen tyyppiä ei välitetä muille tietotyypeille.

Python 2.6:ssa on mielenkiintoinen ominaisuus - voit määrittää arvon Trueuudelleen Falseja päinvastoin kirjoittamalla vain:

tosi = epätosi

tai vaihtoehto koko alueelle

__rakennukset__ . tosi = epätosi

mikä voi johtaa tulkin tai IDLE:n hyvin odottamattomaan käyttäytymiseen. Python 3:ssa tämä ominaisuus on poistettu - Trueja Falsesitä pidetään varattuna, kuten sanaa None.

Pascal

Muuttujien kuvaus:

var a , b : Boolen

Totuusarvojen aritmeettiset operaatiot eivät ole sallittuja, mutta loogiset operaatiot ovat sallittuja: Ei, And, Tai, Xor, relaatiooperaatiot = (yhtä kuin), <> (ei yhtä suuri kuin) ja funktiot Ord, Pred, Succ.

var A , B : tavu ; C , D , E , F : Boolen ; begin A := Järjestys ( False ) ; {A=0} B := Järjestys ( tosi ) ; {B=1} C := Pred ( Epätosi ) ; {error} D := Pred ( True ) ; {D=Epätosi} E := Succ ( False ) ; {E=Tosi} F := Succ ( tosi ) ; {error} loppu .

Ruby

Rubyssa loogista tyyppiä edustaa kaksi ennalta määritettyä muuttujaa : trueja false. Boolen tyyppi ilmestyy loogisten operaatioiden tai loogisten menetelmien kutsumisen seurauksena . Perinteisesti loogisten menetelmien (eli menetelmien, jotka palauttavat arvon tosi tai epätosi) nimi päättyy "?".

Se falsevoi olla nil, ja laatu voi olla true mikä tahansa objekti , mukaan lukien muuttuja , jonka arvo on "0", tai tyhjä merkkijono , mikä on usein yllätys aloittelijoille.

Katso myös