КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Булев тип данных
Логический тип Значениями логического типа BOOL может быть одна из предварительно объявленных констант false (ложь) или true (истина). Данные логического типа занимают один байт памяти. При этом значению false соответствует нулевое значение байта, а значению true соответствует любое ненулевое значение байта. Например: false всегда в машинном представлении: 00000000; true может выглядеть таким образом: 00000001 или 00010001 или 10000000. Однако следует иметь в виду, что при выполнении операции присваивания переменной логического типа значения true в соответствующее поле памяти всегда записывается код 00000001. Над логическими типами возможны операции булевой алгебры - НЕ (!), ИЛИ (||), И (&&), исключающее ИЛИ (^) - последняя реализована для логического типа не во всех языках. В этих операциях операнды логического типа рассматриваются как единое целое - вне зависимости от битового состава их внутреннего представления. Кроме того, следует помнить, что результаты логического типа получаются при сравнении данных любых типов. Интересно, что в языке C данные логического типа отсутствуют, их функции выполняют данные числовых типов, чаще всего - типа int. В логических выражениях операнд любого числового типа, имеющий нулевое значение, рассматривается как "ложь", а ненулевое - как "истина". Результатами логического типа являются целые числа 0 (ложь) или 1 (истина). В С++ появился логический тип BOOL, но его ввели исключительно для удобства программирования, и он ни как не влияет на возможность использования других типов в логических выражениях как в С.
Для булева типа данных, bool, в С# определены два значения true и false (истина и ложь). Следовательно, переменная типа bool или логическое выражение будут иметь одно из этих двух значений. Более того, не существует способа преобразования значений типа bool в целочисленные значения. Например, значение 1 не преобразуется в значение true, а значение 0 - в значение false. Приведем программу, демонстрирующую использование типа данных bool. // Программа демонстрирует использование using System; class BoolDemo { b = false; // Булева переменная может управлять условным оператором if. b = false; Ниже представлен результат, сгенерированный этой программой: Переменная b имеет значение False Обратите внимание на некоторые особенности использования булевой переменной. Во-первых, при выводе значения типа bool с помощью метода WriteLine() на экран выводится слово true или false. Во-вторых, используя переменную типа bool, можно управлять оператором if. Если условием выполнения оператора if является истинность переменной (в данной программе переменной b), то нет необходимости записывать оператор if так: if(b == true)... достаточно более короткого выражения: if(b) В-третьих, результатом выполнения оператора сравнения, такого как <, является значение типа bool. Вот почему выражение 10 > 9 выводит на экран значение true. Далее, дополнительная пара скобок, в которые заключено выражение 10 > 9, является необходимой, поскольку оператор + имеет больший приоритет, чем оператор >.
Операторы сравнения и логические операторы В терминах оператор сравнения и логический оператор слово сравнение означает оценку одного значения по сравнению с другим, а слово логический - способ, которым можно связать значения true и false (истина и ложь) в выражении. Поскольку результатом выполнения операторов сравнения являются булевы значения, эти операторы часто работают совместно с логическими операторами. Поэтому их можно рассматривать вместе. Ниже представлены операторы сравнения.
Далее перечислены логические операторы.
Результатом выполнения операторов сравнения и логических операторов являются значения типа bool. В C# операторы == и!= могут применяться ко всем объектам для их сравнения на предмет равенства или неравенства. Операторы сравнения <, >, <=, >= применимы только к перечисляемым типам данных, которые упорядочены в своей структуре (например, упорядоченная структура чисел 1, 2, 3 и так далее или упорядоченные символы букв алфавита). Следовательно, все операторы сравнения могут применяться ко всем числовым типам данных. Однако значения типа bool могут сравниваться только на предмет равенства или неравенства, поскольку значения true и false не упорядочены. Например, выражение true > false в языке C# не имеет смысла. Для логических операторов операнды должны иметь тип bool. Результатом логических операций также являются значения, имеющие тип bool. Логические операторы &, |, ^ и! поддерживают базовые логические операции AND, OR, XOR и NOT соответственно, результаты выполнения которых соответствуют значениям, приведенным в следующей таблице истинности.
Например, из таблицы видно, что результатом выполнения оператора XOR будет значение true, если только один его операнд имеет значение true. Рассмотрим программу, в которой демонстрируется несколько операторов сравнения и логических операторов: // В программе демонстрируется использование логических операторов using System; class RelLogOps { i = 10; b1 = true; Результат выполнения программы следующий: i < j Результатом вычисления выражения!(b1 & b2) будет значение true. Результатом вычисления выражения b1 | b2 будет значение true. Результатом вычисления выражения b1 ^ b2 будет значение true.
Дата добавления: 2014-01-07; Просмотров: 1703; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |