Булевський тип - це

Реалізація

доступні операції

До цього типу даних застосовні наступні операції:

  • І (логічне множення) (AND. . *),
  • АБО (логічне додавання) (OR. |. +),
  • виключає АБО (множення з перенесенням) (xor. NEQV. ^),
  • еквівалентність (рівність) (EQV. =. ==)
  • інверсія (NOT.

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

застосування

Традиційним застосуванням булевого типу даних є значення «так» / «ні» щодо результату більш складних операцій.

Всі операції порівняння двох величин (так само, більше, менше), операції входження елемента в безліч і перевірка на перетин множин повертають в якості результату булевий тип.

Реалізація в різних мовах програмування

Мова програмування Ada визначає Boolean в пакеті Standard як нумерований тип зі значеннями False і True в якому False

Споріднені оператори (=. / =. <. <=.>.> =) Застосовуються до всіх нумерування типам, включаючи Boolean. Булеві оператори and. or. xor і not застосовні до типу Boolean і будь-яким оголошеним підтипів. Булеві оператори також застосовні до масивів, що містить значення Boolean.

Algol 60 має тип даних boolean і відповідні оператори, встановлені в специфікації Algol 60. Тип даних був скорочений до bool в ALGOL 68.

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

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

У мові bool. для приведення інших типів даних до булеву існує функція bool (). що працює за наступним угодам:

  • рядки: порожній рядок - брехня, непорожній рядок істина.
  • числа: нульове число - брехня, нульове число (в тому числі і менше одиниці) - істина.
  • списки і кортежі: порожній список (кортеж) - брехня, непорожній (навіть містить один елемент, наприклад порожній кортеж) - істина.
  • функції - завжди істина.

Для інших об'єктів результат розраховується через метод __nonzero__, який в ідеалі повинен повертати значення True / False.

Булевий тип наводиться до наступних типів даних:

  • строковий: 'True' для істини, 'False' для брехні.
  • числовий (вбудовані типи int, long, float): 1 для істини, 0 для брехні.

До інших типів даних булевий тип не наводиться.

опис змінних