Логический тип: различия между версиями
[непроверенная версия] | [отпатрулированная версия] |
Содержимое удалено Содержимое добавлено
Нет описания правки |
Д.Ильин (обсуждение | вклад) уточнение, дополнение, стилевые правки, оформление, викификация |
||
Строка 1:
{{другое значение|По [[Википедия:Именование статей/Технические ограничения|техническим причинам]] _Bool перенаправляется сюда. О _Bool можно прочитать здесь: [[stdbool.h]].}}
'''
Название типа Boolean получило
== Реализация ==
Булев тип данных может быть реализован и храниться в памяти с использованием только одного [[бит]]а, но обычно используется минимальная адресуемая ячейка памяти (обычно [[байт]]
== Доступные операции с этим типом данных ==
К этому типу данных применимы следующие операции, в скобках указаны символические обозначения операций в некоторых популярных языках программирования:
* ''И'' (логическое умножение) (<code>AND</code>, <code>&</code>, <code>*</code>),
* ''ИЛИ'' (логическое сложение) (<code>OR</code>, <code>|</code>, <code>+</code>),
Строка 17:
* ''сравнение'' (<code>></code>, <code><</code>, <code><=</code>, <code>>=</code>)
== Применение ==
Традиционным применением булева типа данных являются значения «да»/«нет» в отношении результата сравнение чисел в более сложных
Все операции сравнения двух величин — вещественных и целых переменных или константы с переменной (равно, больше, меньше),
== Реализация в различных языках программирования ==
Строка 44:
=== C ===
В [[Си (язык программирования)|языке программирования C]], который не предоставлял булевых значений в [[Си (язык программирования)#ANSI C и ISO C|C89]] (но вводит в [[Си (язык программирования)#C99|C99]]) вместо значений true/false было установлено сравнение значения с нулём. Для примера, код:
<source lang='c'>
Строка 51:
</source>
равнозначен коду:
<source lang='c'>
Строка 72:
=== Python ===
В языке [[Python]] булев тип данных обозначается как <code>bool</code>, для приведения других типов данных к булеву существует функция <code>bool()</code>, работающая по следующим соглашениям:
* строки: пустая строка — ложь, непустая строка истина
* числа: нулевое число — ложь, ненулевое число (в том числе и меньшее единицы) — истина
* списки и кортежи: пустой список (кортеж) — ложь, непустой (даже содержащий один элемент, например пустой кортеж) — истина
* функции — всегда истина.
Для других объектов результат рассчитывается через метод ''__nonzero__'', который в идеале должен возвращать значения True
Булев тип приводится к следующим типам данных:
* строковый: 'True' для истины, 'False' для лжи
* числовой (встроенные типы int, long, float): 1 для истины, 0 для лжи.
К другим типам данных булев тип не приводится.
В [[Python]] 2.6 есть интересная особенность
<source lang='python'>
True = False
Строка 93 ⟶ 94 :
__builtins__.True = False
</source>
что может привести к весьма неожиданному поведению интерпретатора или IDLE. В python 3 данная возможность была ликвидирована
=== Pascal ===
Описание переменных:
<source lang='pascal'>
var a, b : Boolean
</source>
<source lang='pascal'>
|