ОТНОШЕНИЯ

Что такое операция отношения

Операции отношения и логические операции

Пожалуйста, приостановите работу AdBlock на этом сайте.

Как я уже писал ранее, условный оператор выполняет те или иные действия в зависимости от выполнения условия, заданного программистом. Давайте обсудим, какие условия можно задать в языке Си.

Сразу же напомню, что компьютер не очень-то сообразительный. В данном случае это проявляется в том, что он понимает только простые условия на да/нет. Но обо всём по порядку.

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

Вот посмотрите на некоторые примеры:

Вы ещё помните, что компьютер понимает только нули и единицы? Так вот, как вы уже догадались:

нуль это ложь, а единица – истина.

Вообще, любое число, кроме нуля, интерпретируется как истина. Думаю, дополнительных пояснений эти операции не требуют. Хотя на операцию сравнения обратите особое внимание. Т.к. один знак равно = используется для оператора присваивания, то для операции сравнения используется два знака равенства == . Будьте внимательны и не забывайте об этом. Это частая ошибка, которую совершают начинающие программисты.

Кроме операций отношения есть ещё и логические операции . Они используются для того, чтобы из простых условий создавать сложные. Уже немного испугались? Да не, на самом деле ничего сложного. Сейчас разберёмся.

Логических операций всего три штуки:

Давайте объясню, как они работают.

Оператор логическое НЕ !(условие) отрицает выражение, к которому он был применён. Если условие было истиной, оно становится ложью, а если было ложью, то становится истиной. Вот пример:

(условие1) && (условие2) — оператор логическое И . Возвращает истину, если оба условия истинны. Иначе возвращает ложь.

(условие1) || (условие2) — оператор логическое ИЛИ . Возвращает истину, если хотя бы одно из условий истина или оба условия сразу истинны. Иначе возвращает ложь.

Приоритет логических операций

Для логических операций тоже есть определённая очерёдность выполнения.

  • Операции в скобках
  • Логическая операция НЕ
  • Логическая операция И
  • Логическая операция ИЛИ

Включим логические операции в общий список приоритетов операций, который мы составляли для арифметических операций и математических функций.

  • Операции в скобках
  • вычисляются функции (например, sqrt() , cos() и др.)
  • Логическая операция НЕ
  • умножение, деление, остаток от деления (слева направо)
  • сложение, вычитание
  • Логическая операция И
  • Логическая операция ИЛИ
  • выполняется присваивание

Практика

Решите предложенные задачи. Для удобства работы сразу переходите в полноэкранный режим

Источник

Операции в языке Си

Над объектами в языке Си могут выполняться различные операции:

  • операции присваивания;
  • операции отношения;
  • арифметические;
  • логические;
  • сдвиговые операции.

Результатом выполнения операции является число.

Операции могут быть бинарными или унарными.
Бинарные операции выполняются над двумя объектами, унарные — над одним.

Операция присваивания

Операция присваивания обозначается символом = и выполняется в 2 этапа:

  • вычисляется выражение в правой части;
  • результат присваивается операнду, стоящему в левой части:

объект = выражение;

В случае если объекты в левой и правой части операции присваивания имеют разные типы используется операция явного приведения типа.
объект = (тип)выражение;

Операции отношения

Основные операции отношения:

  • == эквивалентно — проверка на равенство;
  • != не равно — проверка на неравенство;
  • меньше;
  • > больше;
  • меньше или равно;
  • >= больше или равно.

Операции отношения используются при организации условий и ветвлений. Результатом этих операций является 1 бит, значение которого равно 1 , если результат выполнения операции — истина, и равно 0 , если результат выполнения операции — ложь.

Арифметические операции

Основные бинарные операции, расположенные в порядке уменьшения приоритета:

  • * — умножение;
  • / — деление;
  • + — сложение;
  • — вычитание;
  • % — остаток от целочисленного деления.

Основные унарные операции:

  • ++ — инкрементирование (увеличение на 1);
  • –– — декрементирование (уменьшение на 1);
  • — изменение знака.

Результат вычисления выражения, содержащего операции инкрементирования или декрементирования, зависит от того, где расположен знак операции (до объекта или после него). Если операция расположена до объекта, то сначала происходит изменение значения переменной на 1, а потом это значение используется для выполнения следующих операций. Если операция ++ или расположена после переменной, то сначала выполняется операция, а потом значение переменной изменяется на 1.

Бинарные арифметические операции могут быть объединены с операцией присваивания:

  • объект *= выражение; // объект = объект * выражение
  • объект /= выражение; // объект = объект / выражение
  • объект += выражение; // объект = объект + выражение
  • объект -= выражение; // объект = объект — выражение
  • объект %= выражение; // объект = объект % выражение

Логические операции

Логические операции делятся на две группы:

Условные логические операции чаще всего используются в операциях проверки условия if и могут выполняться над любыми объектами. Результат условной логической операции:

  • 1 если выражение истинно;
  • 0 если выражение ложно.

Вообще, все значения, отличные от нуля, интерпретируются условными логическими операциями как истинные.

Основные условные логические операции:

  • && — И (бинарная) — требуется одновременное выполнение всех операций отношения;
  • || — ИЛИ (бинарная) — требуется выполнение хотя бы одной операции отношения;
  • ! — НЕ (унарная) — требуется невыполнение операции отношения.

Побитовые логические операции оперируют с битами, каждый из которых может принимать только два значения: 0 или 1.

Основные побитовые логические операции в языке Си:

инверсия (логическое НЕ) — унарная операция, результат которой равен 0 если операнд единичный, и равен 1, если операнд нулевой;

  • ^ исключающее ИЛИ — бинарная операция, результат которой равен 1, если только один из двух операндов равен 1 (в общем случае если во входном наборе операндов нечетное число единиц).
  • Для каждого бита результат выполнения операции будет получен в соответствии с таблицей.

    aa ^ b000010010111100101111100

    a; // e = 241 = 1111 0001
    f = a ^ b; // f = 7 = 0000 0111

    Побитовые операции позволяют осуществлять установку и сброс отдельных битов числа. С этой целью используется маскирование битов . Маски, соответствующие установке каждого бита в байте, представлены в таблице

    БитМаска
    00x01
    10x02
    20x04
    30x08
    40x10
    50x20
    60x40
    70x80

    Для установки определенного бита необходимо соответствующий бит маски установить в 1 и произвести операцию побитового логического ИЛИ с константой, представляющей собой маску:

    Для сброса определенного бита необходимо соответствующий бит маски сбросить в 0 и произвести операцию побитового логического И с константой, представляющей собой инверсную маску:

    0x02); // a = 1, бит 1 сброшен

    Бинарные побитовые логические операции могут быть объединены с операцией присваивания:

    • объект &= выражение; // объект = объект & выражение
    • объект |= выражение; // объект = объект | выражение
    • объект ^= выражение; // объект = объект ^ выражение

    Сдвиговые операции

    Операции арифметического сдвига применяются в целочисленной арифметике и обозначаются как:

    • >> — сдвиг вправо;
    • — сдвиг влево.

    Общий синтаксис осуществления операции сдвига:
    объект = выражение сдвиг КоличествоРазрядов;

    Арифметический сдвиг целого числа вправо >> на 1 разряд соответствует делению числа на 2.
    Арифметический сдвиг целого числа влево на 1 разряд соответствует умножению числа на 2.

    Источник

    Операции отношения

    Операции отношения используются для сравнений. Мы уже обсуждали их, но здесь мы остановимся на их обсуждении подробнее.

    Операциясмысл
    =больше или равно
    >больше
    !=не равно

    Этот список хорошо соответствует возможным числовым соотношениям.

    !Главное предостережение, которое мы хотим сделать, состоит в том, чтобы не использовать знак = вместо ==. С помощью операции присваивания некоторое значение присваивается переменной слева от знака равенства. В то же время с помощью операции отношения «равенство» проверяется: равно ли выражение, стоящее слева от знака, выражению справа от него. Эта операция не изменяет значения переменной в левой части, если она там присутствует. При программировании требуется аккуратность, потому что в ряде случаев компилятор не сможет обнаружить ошибки, связанные с неправильным использованием знаков этих отношений, что приведет к результатам, отличным от тех, которые вы должны были бы получить.

    Операции отношения применяются при формировании условных выражений, используемых в операторе if и while. Указанные операторы проверяют, истинно или ложно данное выражение.

    printf(«Оценка больше 4!\n»);

    else /* случай, когда оценка меньше 4 */

    printf(«Теперь оценка на 1 больше.\n»);

    Мы ответим на этот вопрос, как он решается в языке Си. В Си выражение всегда имеет значение. Это утверждение остается верным даже для условных выражений, как показывает пример, приведенный ниже. В нем определяются значения двух условных выражений, одно из которых оказывается истинным, а второе — ложным:

    true = (12 > 2); /*отношение истинно*/

    false = (12 == 2) ; /*отношение ложно*/

    printf(«true = %d; false = %d\n»,true,false);

    При выполнении программы получим следующие результаты:

    В языке Си значение истина равно 1, а значение ложь равно 0. В языке Си все ненулевые значения являются истинными, и только 0 являются ложью. Например, два оператора

    поскольку выражение (i !=0 ) и выражение (i) оба примут значения 0, или ложь, только в том случае, если значение переменной i равно 0.

    Осложнение с понятием истина

    Рассмотрим следующую программу:

    Дата добавления: 2014-01-05 ; Просмотров: 444 ; Нарушение авторских прав?

    Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

    Источник

    Показать больше

    Похожие статьи

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Закрыть