Logički tip podataka u računalnoj znanosti

Vrste podataka u računalnoj znanosti brojne su. Podijeljeni su na referentne vrste i tipove vrijednosti. Vrste vrijednosti obično rade brže jer se pohranjuju u stog i njima se upravlja izravno. To su numeričke varijable i logičke vrste podataka. U skladištu se referenca pohranjuje u vezi s hrpom, a na hrpi već postoji vrsta implementacije. Referentni tipovi podataka su string varijable, dinamičke ili globalne varijable, ugrađene ili prilagođene klase.

2. studenog 1815. godine, čovjek rođen u Engleskoj koji je postao poznati matematičar i logičar George Bul. Nazvan je po jednoj od vrsta podataka u programiranju - Boolean, logički tip podataka.
Tip podataka boolean je "primitivni" tip. Široko je rasprostranjen: koristi se u programskom jeziku Algol 60 (1960-ih), Fortran, Pascal, C ++, dostupan je u svim modernim programskim jezicima. Boolean varijabla je izuzetna po tome što ima samo dvije vrijednosti: TRUE (true, 1) ili FALSE (netočno, 0). Obično se provodi putem numeričkog tipa podataka, štoviše, većina programskih jezika dopušta da se ona koristi u aritmetičkim operacijama, nakon što je prethodno dovedena do numeričkog tipa, na temelju pravila za dovođenje tipova za određeni programski jezik.


Tip podataka niske razine

Boolean je značajan tip. U RAM-u su varijable tipa bool pohranjene u stog, tj. Promet i postavljanje takve varijable je vrlo brzo. Lako je pretpostaviti da je za realizaciju tako jednostavnog tipa dovoljno 1 bit (0 ili 1), ali zapravo zbog osobina arhitekture procesorapod logičkim tipom podataka rezervirana je minimalna adresabilna memorijska ćelija - bajt, a ako je točnije naznačena, tada je riječ stroj. To olakšava procesor i radnu memoriju. Na primjer: 00000000 - false 00000001 ili 00010001 ili 100000 - true Ali kada je boolean vrijednost postavljena na true, vrijednost u strojnom kodu uvijek je vrijednost 00000001.

Logički tip podataka. Logičke operacije

U zajedničkim programskim jezicima, boolean tip podržava nekoliko operacija, mi ćemo razmotriti sljedeće:
  • LOGICAL AND (AND & amp; & amp; & amp;
  • LOGIČKA ILI (ILI | +).
  • ISKLJUČUJE ILI (XOR ^).
  • JEDNAKOST (EQV ==).
  • STVARNO (NE! =).
  • OPERACIJE USPOREDBE (> 17) Boolean tipovi podataka Primjeri Logički i
    Operator & amp; Vraća istinu ako su oba argumenta istinita.




    pomoću sustava;

    imenski prostor Booleova
    {
    klasa MainClass
    {
    public static void Glavni (string [] args)
    {
    Console.WriteLine (true i amp; )
    Console.ReadLine ();
    }
    }
    }

    U ovom primjeru, drugi uvjet je BLOCK, što znači da konzola prikazuje false.

    Logički ILI

    Operator || vraća istinu ako je barem jedan od argumenata istinit.

    upotrebom sustava; 

    imenski prostor Booleova
    {
    klasa MainClass
    {
    public static void Glavni (string [] args
    {
    Console.WriteLine (true || false) ;
    Console.ReadLine ();
    }
    }
    }

    U ovom primjeru jedan od uvjeta je TRUE, stoga je prikazana prava konzola.

    Exclusive OR

    Operator ^ (ne smije se miješati s erekcijom u nekom stupnju) vraća istinu ako je samo jedan od argumenata istinit.

    pomoću sustava; 

    prostor imena Boolean
    {
    klasa MainClass
    {
    public static void Glavni (string [] args)
    {
    Console.WriteLine (true ^ true);
    Console.ReadLine ();
    }
    }
    }

    U ovom primjeru oba su argumenta istinita, tako da se u konzoli prikazuje laž.


    & lt; script type = "text /javascript" & gt;
    može blockSettings2 = {blockId: "R-A-271049-5", renderTo: "yandex_rtb_R-A-70350-39", async: 0};
    if (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings2.statId = 70350;
    Funkcija (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (funkcija () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("script") , d = b.createElement ("script"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (ovaj, ovaj.dokument," yandexContextAsyncCallbacks ");

    Jednakost i nejednakost

    Operator == vraća istinu ako su oba uvjeta jednaka. Operator! = Vraća istinu ako oba uvjeta nisu jednaka.

    pomoću sustava; 

    imenski prostor Booleova
    {
    klasa MainClass
    {
    public static void Glavni (string [] args)
    {
    Console.WriteLine (true! = False) ;
    Console.ReadLine ();
    }
    }
    }

    Konzola će biti istinita jer je uvjet zadovoljen.

    Primjeri u C # razmatrani su gore. U ovom jeziku za operacije logičkog tipa definirane su dvije vrijednosti - true i false. I ovdje je zabranjeno pretvoriti Boolean vrijednosti u integers, prevodilac će dati pogrešku. Kao što je lako primijetiti, kada šaljete metodu WriteLine klase konzole boolean varijabla na konzoli prikazuje se njezina vrijednost.

    Također, boolean varijabla se može kontrolirati s if izrazom. Ako je uvjet za izvođenje izraza if ako je glagol varijable, tada se izraz može reducirati na:

    if (x) {/* do smth * /}

    Operacije usporedbe

    ]

    Operatori & gt; =

    U C, ako varijabla sadrži 0, njena logička vrijednost je ekvivalentna KRVI, i obrnuto, bilo koji broj se tretira kao TRUE. Za bolje razumijevanje pogledajte doljeisječak koda:

    ako (bool_variable) printf ("True! n"); else printf ("False! n")

    U C nema pojma logičkog tipa podataka, umjesto toga koriste se numerički tipovi, uglavnom cijeli brojevi. Stoga, u logičkim operacijama, bilo koji operand numeričkog tipa koji nije bitan nije jednak nuli, interpretira se kao TRUE, a rezultat logičkih operacija su cijeli brojevi, jedan odnosno nula. U C ++-u je uveden logički tip podataka, ali za praktičnost rada. To ne utječe na uporabu drugih tipova logičkih izraza kao u C.


    & lt; script type = "text /javascript" & gt;
    može blockSettings3 = {blockId: "R-A-271049-6", renderTo: "yandex_rtb_R-A-70350-44", async: 0};
    ako (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings3.statId = 70350;
    Funkcija (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (funkcija () {Ya.Context.AdvManager.render (blockSettings3)}), e = b.getElementsByTagName ("script") , d = b.createElement ("script"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (ovaj, ovaj.dokument," yandexContextAsyncCallbacks ");

    Redoslijed izvršenja operatora logičkih tipova podataka događa se s lijeva na desno. Na primjer, izračun izraza

    var x & amp; može & amp; & amp; var z

    će se zaustaviti čim se prvi operand pojavi u vrijednosti DEFINICIJE, a račun

    var x || može y || var z

    će se izvršiti dok kompilator ne ispuni prvu pravu vrijednost.

    Pascal

    U različitim programskim jezicima, suptilnosti varijabli logičkih operatora mogu se neznatno razlikovati. Logički tip podataka u Pascalu, na primjer, ima zanimljivu značajku: ovdje možete usporediti ISTINU i KRV, a CRNA je manja od TRUE. Također, vrijednost BLOB odgovara nuli, a vrijednost TRUE je bilo kojabroj koji nije nula.

    Pristup

    Logički tip podataka u Accessu radi slično.
  • LOGIKA I I.
  • LOGIČKA ILI OR.
  • EQv.
  • NEZAVISNOST Ne.
  • ISKLJUČIVO ILI XOR. Oni djeluju na isti način kao iu drugim popularnim programskim jezicima.

    Python

    U Pythonu, logički tip podataka proglašen je standardnim - bool. Za unos drugih tipova u Boolean tip, koristi se funkcija bool ():
  • Prazan niz - BLOCK, nije prazan - TRUE.
  • Nula - KRV, bilo koji broj osim nule - TRUE.
  • Prazan niz - KRV, ne-prazan - TRUE.
  • Funkcija je TRUE.
  • To su sve vrste podataka koji mogu biti boolean tip u Pythonu.

    Ruby

    U smislu BLOK-a, postoji nula, a istina može biti bilo koji objekt. I varijabla s vrijednošću 0 ili praznim nizom također se smatra TRUE, a to može uzrokovati poteškoće ljudima koji su početnici u učenju tog jezika. Transakcije s logičnim vrstama podataka mogu se neznatno razlikovati ovisno o jeziku. Stoga je uvijek nužno upoznati se s finoćama korištenja tipova podataka na jeziku koji se proučava, tako da nema poteškoća u daljnjoj primjeni.

    Povezane publikacije