Логический тип: различия между версиями

орфография: булевый, булевский — неверно, только булев
(орфография: булевый, булевский — неверно, только булев)
== Реализация ==
 
БулевыйБулев тип данных может быть реализован с использованием только одного [[бит]]а, но обычно используется минимальная адресуемая ячейка памяти ([[байт]]) или [[машинное слово]], как эффективная единица работы с регистрами и оперативной памятью.
 
== Доступные операции ==
* ''сравнение'' (<code>&gt;</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;=</code>)
 
Так же могут использоваться и другие операции [[Булева алгебра|булевой алгебры]]. Большинство языков программирования позволяют использовать булевыйбулев тип и в арифметических операциях, приводя его к численному типу согласно принятым в языке правилам приведения типов.
 
== Применение ==
Традиционным применением булевогобулева типа данных являются значения «да»/«нет» в отношении результата более сложных операций.
 
Все операции сравнения двух величин (равно, больше, меньше), операции вхождения элемента в множество и проверка на пересечение множеств возвращают в качестве результата булевыйбулев тип.
 
== Реализация в различных языках программирования ==
end if;
 
Родственные операторы (<code>=</code>, <code>/=</code>, <code><</code>, <code><=</code>, <code>></code>, <code>>=</code>) применяются ко всем нумерованым типам, включая <code>Boolean</code>. БулевыеБулевы операторы <code>and</code>, <code>or</code>, <code>xor</code> и <code>not</code> применимы к типу <code>Boolean</code> и любым объявленным подтипам. БулевыеБулевы операторы также применимы к массивам, содержащим значения <code>Boolean</code>.
 
=== Algol ===
}
 
Это было честно для типа данных [[Целое число|целочисленное]] (integer); тем не менее, бинарные значения [[Число с плавающей запятой|чисел с плавающей запятой]] (floating-point) были приближёнными к выводимым на экран десятичным значениям и это давало ошибки при сравнении. Традиционно, целое содержало одну (или более) булевуюбулеву переменную (одну на каждый [[числовой разряд|разряд]] целого).
 
 
 
=== Python ===
В языке [[Python]] булевыйбулев тип данных обозначается как <code>bool</code>, для приведения других типов данных к булеву существует функция <code>bool()</code>, работающая по следующим соглашениям:
* строки: пустая строка — ложь, непустая строка истина.
* числа: нулевое число — ложь, ненулевое число (в том числе и меньшее единицы) — истина.
Для других объектов результат рассчитывается через метод __nonzero__, который в идеале должен возвращать значения True/False.
 
БулевыйБулев тип приводится к следующим типам данных:
* строковый: 'True' для истины, 'False' для лжи.
* числовой (встроеные типы int, long, float): 1 для истины, 0 для лжи.
 
К другим типам данных булевыйбулев тип не приводится.
 
=== Pascal ===
 
=== Ruby ===
В [[Ruby]] булевскийбулев тип представлен двумя предопределенными [[переменная|переменными]]: <code>true</code> и <code>false</code>. Появляется логический тип в результате логических операций или вызова логических [[метод (языки программирования)|методов]]. По традиции, имя логических методов (то есть методов, которые возвращают значение true или false) заканчивается на «?».
 
В качестве <code>false</code> может выступать <code>nil</code>, а в качестве <code>true</code> — любой [[объект (программирование)|объект]], в том числе [[переменная (программирование)|переменная]] со значением «0» или пустая [[строковый тип|строка]], что часто является неожиданностью для новичков.