Логически тип данни в компютърните науки

Видовете данни в компютърните науки са многобройни. Те са разделени на референтни типове и типове ценности. Видовете стойности обикновено работят по-бързо, защото се съхраняват в стека и се управляват директно. Това са числени променливи и логически типове данни. Справочникът съхранява в стека връзка към купчината, а в купчината вече има тип изпълнение. Референтните типове данни са низови променливи, динамични или глобални променливи, вградени или потребителски класове.

На 2 ноември 1815 г., човек, роден в Англия, станал известен математик и логик Джордж Бул. Наименованието се носи от един от видовете данни в програмирането - булеви, логическия тип данни.
Типът данни boolean е "примитивен" тип. Той е широко разпространен навсякъде: използван в езика за програмиране Algol 60 (1960), Fortran, Pascal, C ++, е достъпен във всички съвременни езици за програмиране. Булевата променлива е забележителна с това, че има само две стойности: TRUE (true, 1) или FALSE (невярно, 0). Обикновено се реализира чрез цифров тип данни, освен това, повечето езици за програмиране му позволяват да се използва в аритметични операции, след като преди това са били доведени до числов тип, въз основа на правилата за привеждане на типове за определен език за програмиране.


Типът данни на ниско ниво

е логичен тип. В RAM, променливите от типа bool се съхраняват в стека, т.е. оборотът и разположението на такава променлива е много бързо. Лесно е да се предположи, че за реализирането на такъв прост тип достатъчно 1 бит (0 или 1), а всъщност поради особеностите на архитектурата на процесоритепод логическия тип данни е запазена минималната адресируема памет клетка - байт, и ако по-точно посочи, тогава машинната дума. Това улеснява процесора и оперативната памет. Например: 00000000 - false 00000001 или 00010001 или 100000 - true Но когато булевата стойност е зададена на true, стойността в машинния код винаги е стойността 00000001.

Логически тип данни. Логически операции

В общите програмни езици булевият тип поддържа няколко операции, ние ще вземем под внимание следното:
  • LOGICAL AND (& & amp; & amp; & amp; *).
  • ЛОГИЧЕСКА ИЛИ (ИЛИ | +).
  • ИЗКЛЮЧВА ИЛИ (XOR ^).
  • РАВНОСТ (EQV ==).
  • В действителност (НЕ! =).
  • ОПЕРАЦИИ НА СРАВНЕНИЕ (> 17) Булеви типове данни Примери Logical &
    Операторът & amp; Връща истината, ако и двата аргумента са верни.




    използвайки System;

    пространство на имената Булева
    {
    клас MainClass
    {
    публична статична невалидна Main (string [] args)
    {
    Console.WriteLine (true & amp; )
    Console.ReadLine ();
    }
    }
    }

    В този пример второто условие е BLOCK, което означава, че конзолата показва false.

    Логическо ИЛИ

    Оператор || връща истината, ако поне един от аргументите е вярно.

    използване на система; 

    пространство на имената Булева
    {
    класа MainClass
    {
    public static void Главна (string [] args
    {
    Console.WriteLine (true || false) ;
    Console.ReadLine ();
    }
    }
    }

    В този пример едно от условията е TRUE, следователно се показва истинската конзола.

    Exclusive OR

    Операторът ^ (да не се бърка с ерекцията в определена степен) връща истината, ако само един от аргументите е вярно.

    използване на система; 

    пространство на имената Булево
    {
    клас Главен
    {
    публичен статичен невалиден Главен (string [] args)
    {
    Console.WriteLine (вярно ^ вярно);
    Console.ReadLine ();
    }
    }
    }

    В този пример и двата аргумента са верни, така че в конзолата се показва false.


    & lt; script type = "text /javascript" & gt;
    може да blockSettings2 = {blockId: "R-A-271049-5", renderTo: "yandex_rtb_R-A-70350-39", async: 0};
    if (document.cookie.indexOf ("abmatch =")> = 0) blockSettings2.statId = 70350;
    Функция (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (функция () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("скрипт") , d = b.createElement ("скрипт"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (това, този.документ," yandexContextAsyncCallbacks ");

    Равенство и неравенство

    Операторът == връща истината, ако и двете условия са еднакви. Оператор! = Връща истината, ако и двете условия не са равни.

    използвайки System; 

    пространство на имената Булева
    {
    клас MainClass
    {
    public static void Main (string [] args)
    {
    Console.WriteLine (true! = False) ;
    Console.ReadLine ();
    }
    }
    }

    Конзолата ще бъде вярна, защото условието е изпълнено.

    Примери в C # са разгледани по-горе. В този език за операции от логически тип се дефинират две стойности - true и false. И тук е забранено да се конвертират булеви стойности в цели числа, компилаторът ще даде грешка. Както е лесно да се забележи, когато изпращате на метода WriteLine клас конзола булева променлива на конзолата, нейната стойност се показва.

    Също така, булевата променлива може да се контролира от оператора if. Ако условието за изпълнение на израза с if е глаголът на променливата, тогава изразът може да бъде намален до:

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

    Сравнителни операции

    ]

    Оператори & gt; =

    В C, ако променливата съдържа 0, нейната логическа стойност е еквивалентна на BLOOD, и обратно, всеки номер се третира като TRUE. За по-добро разбиране вижте по-долукодов фрагмент:

    ако (bool_variable) printf ("True! n"); else printf ("False! n")

    В C няма представа за логически тип данни, вместо това се използват числени типове, най-вече цяло число. Следователно, при логически операции всеки операнд от числов тип, който няма значение, не е равен на нула, се интерпретира като TRUE, а резултатът от логическите операции са цели числа, едно и нула, съответно. В C ++ е въведен логическият тип данни, а по-скоро за удобство при работа. Това не засяга използването на други типове логически изрази, както в C.


    & lt; script type = "text /javascript" & gt;
    може да blockSettings3 = {blockId: "R-A-271049-6", renderTo: "yandex_rtb_R-A-70350-44", async:! 0};
    if (document.cookie.indexOf ("abmatch =")> = 0) blockSettings3.statId = 70350;
    Функция (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (функция () {Ya.Context.AdvManager.render (blockSettings3)}), e = b.getElementsByTagName ("скрипт") , d = b.createElement ("скрипт"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (това, този.документ," yandexContextAsyncCallbacks ");

    Редът на изпълнение на операторите на логически типове данни възниква отляво надясно. Например, изчислението на израза

    var x & amp; може да & amp; & amp; var z

    ще спре веднага след появата на първия операнд в стойността на ОПРЕДЕЛЕНИЕ, а смятането

    var x || може y || var z

    ще се изпълни, докато компилаторът изпълни първата истинска стойност.

    Pascal

    В различните езици за програмиране тънкостите на булевите оператори могат да се различават леко. Например логическият тип данни в Pascal има интересна характеристика: тук можете да сравните TRUTH и BLOOD, а BLACK е по-малко от TRUE. Също така, стойността на BLOB съответства на нула, а стойността TRUE е всяканомер, различен от нула.

    Достъп

    Логически тип данни в Access работи по същия начин.
  • ЛОГИКА И И.
  • ЛОГИЧЕСКА ИЛИ ИЛИ.
  • EQV.
  • НЕЗАВИСИМОСТ Не.
  • ИЗКЛЮЧИТЕЛНО ИЛИ XOR.
  • Те изпълняват същия начин, както и в други популярни езици за програмиране.

    Python

    В Python логическият тип данни е обявен за стандартен - bool. За да въведете други типове в булев тип, се използва функцията bool ():
  • Празен низ - BLOCK, не празен - TRUE.
  • Нула - КРЪВ, всеки номер, различен от нула - ИСТИНСКИ.
  • Празен масив - КРЪВ, непразен - ИСТИНСКИ.
  • Функцията е TRUE.
  • Това са всички типове данни, които могат да бъдат булев тип в Python.

    Ruby

    В смисъл на BLOCK, има нула и истината може да бъде всеки обект. И променлива с стойност 0 или празен низ също се счита за ИСТИНС, и това може да доведе до трудности за начинаещите хора, които да научат този език. Транзакциите с логически типове данни могат леко да се различават в зависимост от езика. Ето защо винаги е необходимо да се запознаете с тънкостите на използване на типове данни на изучавания език, така че да няма трудности при по-нататъшното им прилагане.

    Свързани публикации