Википедия

Булевский тип

Логи́ческий тип да́нных, или булев тип, или булевый тип (от англ. Boolean или logical data type) — примитивный тип данных в информатике, принимающий два возможных значения, иногда называемых истиной (true) и ложью (false). Присутствует в подавляющем большинстве языков программирования как самостоятельная сущность или реализуется через численный тип данных. В некоторых языках программирования за значение истина полагается 1, за значение ложь — 0.

Название типа Boolean получило в честь английского математика и логика Джорджа Буля, среди прочего занимавшегося вопросами математической логики в середине XIX века.

Реализация

Булев тип данных может быть реализован и храниться в памяти с использованием только одного бита, но обычно используется минимальная адресуемая ячейка памяти (обычно байт или машинное слово), как более эффективная с точки зрения быстродействия единица хранения при работе с регистрами процессора и оперативной памятью.

Доступные операции с этим типом данных

К этому типу данных применимы следующие операции, в скобках указаны символические обозначения операций в некоторых популярных языках программирования:

  • И (логическое умножение) (AND, &, *),
  • ИЛИ (логическое сложение) (OR, |, +),
  • исключающее ИЛИ (сложение с переносом) (xor, NEQV, ^),
  • эквивалентность (равенство) (EQV, =, ==)
  • инверсия (NOT, ~, !)
  • сравнение (>, <, <=, >=)

Также могут использоваться и другие операции булевой алгебры, например, стрелка Пирса или штрих Шеффера. Большинство языков программирования позволяют использовать булев тип переменных и констант и в арифметических операциях, предварительно приводя его к численному типу, согласно принятым в языке правилам преобразования типов.

Применение

Традиционным применением булева типа данных являются значения «да»/«нет» в отношении результата сравнение чисел в более сложных операциях.

Все операции сравнения двух величин — вещественных и целых переменных или константы с переменной (равно, больше, меньше), функции проверки принадлежности вхождения некоторого элемента в множество и проверка на непустоту пересечения множеств возвращают в качестве результата булев тип.

Реализация в различных языках программирования

Ada

Язык программирования Ada определяет Boolean в пакете Standard как нумерованный тип со значениями False и True в котором False < True.

type Boolean is (False, True); p : Boolean := True; if p then ... end if; 

Родственные операторы (=, /=, <, <=, >, >=) применяются ко всем нумерованым типам, включая Boolean. Булевы операторы and, or, xor и not применимы к типу Boolean и любым объявленным подтипам. Булевы операторы также применимы к массивам, содержащим значения Boolean.

Algol

Algol 60 имеет тип данных boolean и соответствующие операторы, установленные в спецификации Algol 60. Тип данных был сокращён до bool в ALGOL 68.

C

В языке программирования C, который не предоставлял булевых значений в C89 (но вводит в C99) вместо значений true/false было установлено сравнение значения с нулём. Для примера, код:

if (bool_variable) printf("True!\n"); else printf("False!\n"); 

равнозначен коду:

if (bool_variable != 0) printf("True!\n"); else printf("False!\n"); 

Это было честно для целочисленного типа данных (integer); тем не менее, бинарные значения чисел с плавающей запятой (floating-point) были приближёнными к выводимым на экран десятичным значениям, и это давало ошибки при сравнении. Традиционно, целое содержало одну (или более) булеву переменную (одну на каждый разряд целого).

Haskell

В языке Haskell булев тип данных реализован как простейший алгебраический тип данных:

data Bool = False | True 

В стандартном модуле Data.Bool для него определены функции &&, || и not.

Python

В языке Python булев тип данных обозначается как bool, для приведения других типов данных к булеву существует функция bool(), работающая по следующим соглашениям:

  • строки: пустая строка — ложь, непустая строка — истина;
  • числа: нулевое число — ложь, ненулевое число (в том числе и меньшее единицы) — истина;
  • списки и кортежи: пустой список (кортеж) — ложь, непустой (даже содержащий один элемент, например пустой кортеж) — истина;
  • функции — всегда истина.

Для других объектов результат рассчитывается через метод __nonzero__, который в идеале должен возвращать значения True или False.

Булев тип приводится к следующим типам данных:

  • строковый: True для истины, False для лжи;
  • числовой (встроенные типы int и float): 1 для истины, 0 для лжи.

К другим типам данных булев тип не приводится.

В Python 2.6 есть интересная особенность — можно переопределить значение True на False и наоборот, написав всего лишь:

True = False 

или, вариант для всей области видимости

__builtins__.True = False 

что может привести к весьма неожиданному поведению интерпретатора или IDLE. В Python 3 данная возможность была ликвидирована — True и False считаются зарезервированными, как и слово None.

Pascal

Описание переменных:

var a, b : Boolean 

Арифметические операции над булевыми недопустимы, но допустимы логические операции: Not, And, Or, Xor, операции отношения = (равно), <> (не равно) и функции Ord, Pred, Succ.

var  A, B: Byte;  C, D, E, F: Boolean; begin  A := Ord(False); {A=0}  B := Ord(True); {B=1}  C := Pred(False); {ошибка}  D := Pred(True); {D=False}  E := Succ(False); {E=True}  F := Succ(True); {ошибка} end. 

Ruby

В Ruby булев тип представлен двумя предопределенными переменными: true и false. Появляется логический тип в результате логических операций или вызова логических методов. По традиции, имя логических методов (то есть методов, которые возвращают значение true или false) заканчивается на «?».

В качестве false может выступать nil, а в качестве true — любой объект, в том числе переменная со значением «0» или пустая строка, что часто является неожиданностью для новичков.

См. также

Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Булевский тип, Что такое Булевский тип? Что означает Булевский тип?

Po tehnicheskim prichinam Bool perenapravlyaetsya syuda O Bool mozhno prochitat zdes stdbool h Logi cheskij tip da nnyh ili bulev tip ili bulevyj tip ot angl Boolean ili logical data type primitivnyj tip dannyh v informatike prinimayushij dva vozmozhnyh znacheniya inogda nazyvaemyh istinoj true i lozhyu false Prisutstvuet v podavlyayushem bolshinstve yazykov programmirovaniya kak samostoyatelnaya sushnost ili realizuetsya cherez chislennyj tip dannyh V nekotoryh yazykah programmirovaniya za znachenie istina polagaetsya 1 za znachenie lozh 0 Nazvanie tipa Boolean poluchilo v chest anglijskogo matematika i logika Dzhordzha Bulya sredi prochego zanimavshegosya voprosami matematicheskoj logiki v seredine XIX veka RealizaciyaBulev tip dannyh mozhet byt realizovan i hranitsya v pamyati s ispolzovaniem tolko odnogo bita no obychno ispolzuetsya minimalnaya adresuemaya yachejka pamyati obychno bajt ili mashinnoe slovo kak bolee effektivnaya s tochki zreniya bystrodejstviya edinica hraneniya pri rabote s registrami processora i operativnoj pamyatyu Dostupnye operacii s etim tipom dannyhK etomu tipu dannyh primenimy sleduyushie operacii v skobkah ukazany simvolicheskie oboznacheniya operacij v nekotoryh populyarnyh yazykah programmirovaniya I logicheskoe umnozhenie AND amp ILI logicheskoe slozhenie OR isklyuchayushee ILI slozhenie s perenosom xor NEQV ekvivalentnost ravenstvo EQV inversiya NOT sravnenie gt lt lt gt Takzhe mogut ispolzovatsya i drugie operacii bulevoj algebry naprimer strelka Pirsa ili shtrih Sheffera Bolshinstvo yazykov programmirovaniya pozvolyayut ispolzovat bulev tip peremennyh i konstant i v arifmeticheskih operaciyah predvaritelno privodya ego k chislennomu tipu soglasno prinyatym v yazyke pravilam preobrazovaniya tipov PrimenenieTradicionnym primeneniem buleva tipa dannyh yavlyayutsya znacheniya da net v otnoshenii rezultata sravnenie chisel v bolee slozhnyh operaciyah Vse operacii sravneniya dvuh velichin veshestvennyh i celyh peremennyh ili konstanty s peremennoj ravno bolshe menshe funkcii proverki prinadlezhnosti vhozhdeniya nekotorogo elementa v mnozhestvo i proverka na nepustotu peresecheniya mnozhestv vozvrashayut v kachestve rezultata bulev tip Realizaciya v razlichnyh yazykah programmirovaniyaAda Yazyk programmirovaniya Ada opredelyaet Boolean v pakete Standard kak numerovannyj tip so znacheniyami False i True v kotorom False lt True type Boolean is False True p Boolean True if p then end if Rodstvennye operatory lt lt gt gt primenyayutsya ko vsem numerovanym tipam vklyuchaya Boolean Bulevy operatory and or xor i not primenimy k tipu Boolean i lyubym obyavlennym podtipam Bulevy operatory takzhe primenimy k massivam soderzhashim znacheniya Boolean Algol Algol 60 imeet tip dannyh boolean i sootvetstvuyushie operatory ustanovlennye v specifikacii Algol 60 Tip dannyh byl sokrashyon do bool v ALGOL 68 C V yazyke programmirovaniya C kotoryj ne predostavlyal bulevyh znachenij v C89 no vvodit v C99 vmesto znachenij true false bylo ustanovleno sravnenie znacheniya s nulyom Dlya primera kod if bool variable printf True n else printf False n ravnoznachen kodu if bool variable 0 printf True n else printf False n Eto bylo chestno dlya celochislennogo tipa dannyh integer tem ne menee binarnye znacheniya chisel s plavayushej zapyatoj floating point byli priblizhyonnymi k vyvodimym na ekran desyatichnym znacheniyam i eto davalo oshibki pri sravnenii Tradicionno celoe soderzhalo odnu ili bolee bulevu peremennuyu odnu na kazhdyj razryad celogo Haskell V yazyke Haskell bulev tip dannyh realizovan kak prostejshij algebraicheskij tip dannyh data Bool False True V standartnom module Data Bool dlya nego opredeleny funkcii amp amp i not Python V yazyke Python bulev tip dannyh oboznachaetsya kak bool dlya privedeniya drugih tipov dannyh k bulevu sushestvuet funkciya bool rabotayushaya po sleduyushim soglasheniyam stroki pustaya stroka lozh nepustaya stroka istina chisla nulevoe chislo lozh nenulevoe chislo v tom chisle i menshee edinicy istina spiski i kortezhi pustoj spisok kortezh lozh nepustoj dazhe soderzhashij odin element naprimer pustoj kortezh istina funkcii vsegda istina Dlya drugih obektov rezultat rasschityvaetsya cherez metod nonzero kotoryj v ideale dolzhen vozvrashat znacheniya True ili False Bulev tip privoditsya k sleduyushim tipam dannyh strokovyj True dlya istiny False dlya lzhi chislovoj vstroennye tipy int i float 1 dlya istiny 0 dlya lzhi K drugim tipam dannyh bulev tip ne privoditsya V Python 2 6 est interesnaya osobennost mozhno pereopredelit znachenie True na False i naoborot napisav vsego lish True False ili variant dlya vsej oblasti vidimosti builtins True False chto mozhet privesti k vesma neozhidannomu povedeniyu interpretatora ili IDLE V Python 3 dannaya vozmozhnost byla likvidirovana True i False schitayutsya zarezervirovannymi kak i slovo None Pascal Opisanie peremennyh var a b Boolean Arifmeticheskie operacii nad bulevymi nedopustimy no dopustimy logicheskie operacii Not And Or Xor operacii otnosheniya ravno lt gt ne ravno i funkcii Ord Pred Succ var A B Byte C D E F Boolean begin A Ord False A 0 B Ord True B 1 C Pred False oshibka D Pred True D False E Succ False E True F Succ True oshibka end Ruby V Ruby bulev tip predstavlen dvumya predopredelennymi peremennymi true i false Poyavlyaetsya logicheskij tip v rezultate logicheskih operacij ili vyzova logicheskih metodov Po tradicii imya logicheskih metodov to est metodov kotorye vozvrashayut znachenie true ili false zakanchivaetsya na V kachestve false mozhet vystupat nil a v kachestve true lyuboj obekt v tom chisle peremennaya so znacheniem 0 ili pustaya stroka chto chasto yavlyaetsya neozhidannostyu dlya novichkov Sm takzheLogicheskoe vyrazhenie

NiNa.Az

NiNa.Az - Абсолютно бесплатная система, которая делится для вас информацией и контентом 24 часа в сутки.
Взгляните
Закрыто