Лекция 3. Лекция 3. Переменные, операции, выражения
Скачать 103.61 Kb.
|
Операции сдвигаОперации сдвига (<< и >>) применяются к целочисленным операндам. Они сдвигают двоичное представление первого операнда влево или вправо на количество двоичных разрядов, заданное вторым операндом. При сдвиге влево (<<) освободившиеся разряды обнуляются. При сдвиге вправо (>>) освободившиеся биты заполняются нулями, если первый операнд беззнакового типа, и знаковым разрядом в противном случае. Стандартные операции сдвига определены для типов int, uint, long и ulong. Операции отношения и проверки на равенствоОперации отношения (<, <=, >, >=, ==, !=) сравнивают первый операнд со вторым. Операнды должны быть арифметического типа. Результат операции — логического типа, равен true или false. Правила вычисления результатов приведены в таблице3.7.
Поразрядные логические операцииПоразрядные логические операции (&, |, ^) применяются к целочисленным операндам и работают с их двоичными представлениями. При выполнении операций операнды сопоставляются побитно (первый бит первого операнда с первым битом второго, второй бит первого операнда со вторым битом второго, и т д.). Стандартные операции определены для типов int, uint, longиulong. При поразрядной конъюнкции (&), бит результата равен 1 только тогда, когда соответствующие биты обоих операндов равны 1. При поразрядной дизъюнкции (|), бит результата равен 1 тогда, когда соответствующий бит хотя бы одного из операндов равен 1. При поразрядном исключающем ИЛИ(^) бит результата равен 1 только тогда, когда соответствующий бит только одного из операндов равен 1. Условные логические операцииУсловные логические операции И (&&) и ИЛИ (||) чаще всего используются с операндами логического типа. Результатом логической операции является true или false. Операции вычисляются по сокращённой схеме. Результат операции логическое Иимеет значение true, только если оба операнда имеют значение true. Результат операции логическое ИЛИимеет значение true, если хотя бы один из операндов имеет значение true. Если значения первого операнда достаточно, чтобы определить результат операции, второй операнд не вычисляется. Условная операцияУсловная операция (? :) имеет три операнда. Ее формат: Операнд_1 ? операнд_2 : операнд_3 Первый операнд – выражение, для которого существует неявное преобразование к логическому типу. Если результат вычисления первого операнда равен true, то результатом условной операции будет значение второго операнда, иначе – третьего операнда. Вычисляется всегда либо второй операнд, либо третий. Их тип может различаться. Тип результата операции зависит от типа второго и третьего операндов. Если операнды одного типа, он и становится типом результата операции. Операции присваиванияОперации присваивания (=, +=, -=, *= и т. д.) задают новое значение переменной. Эти операции могут использоваться в программе как законченные операторы. Формат операции простогоприсваивания(=): переменная = выражение Механизм выполнения операции присваивания такой: вычисляется выражение и его результат заносится в память по адресу, который определяется именем переменной, находящейся слева от знака операции. То, что ранее хранилось в этой области памяти, теряется. Примеры операторов присваивания: a = b + c / 2; x = 1; x = x + 0.5; Для правого операнда операции присваивания должно существовать неявноепреобразование к типу левого операнда. Например, выражение целого типа можно присвоить вещественной переменной, потому что целые числа являются подмножеством вещественных, и информация при таком присваивании не теряется. вещественная_переменная := целое_выражение; Результатом операции присваивания является значение, записанное в левый операнд. Тип результата совпадает с типом левого операнда. В сложных операциях присваивания ( +=, *=, /= и т п.) при вычислении выражения, стоящего в правой части, используется значение из левой части. Например, при сложении с присваиванием ко второму операнду прибавляется первый, и результат записывается в первый операнд, то есть выражение a += b является более компактной записью выражения a = a + b. Результатом операции сложного присваивания является значение, записанное в левый операнд. Операции присваивания правоассоциативны, то есть выполняются справа налево, в отличие от большинства других операций (a = b = c означает a = (b = c)). Вопросы и задания для самостоятельной работы студентаГде можно описывать переменные? Что входит в описание переменной? Что происходит при использовании в выражении операндов различных типов? Приведите примеры. Перечислите операции языка C#, сгруппировав их по приоритетам. Что такое NaN? В каких операциях NaN является результатом? К операндам какого типа применимы операции сдвига? Что такое исключительные ситуации? Опишите принципы обработки исключительных ситуаций. |