ее первоначальное значение, увеличенное на 10.
Рассмотрим еще один пример. Оператор
х = х - 100;
и оператор
X -= 100;
выполняют одни и те же действия. Оба оператора присваивают переменной х ее первоначальное значение, уменьшенное на 100.
Для многих двоичных операций, т.е. операций, требующих наличия двух операндов, существуют отдельные составные операторы присваивания. Общая форма всех этих операторов имеет следующий вид:
где
Ниже перечислены составные операторы присваивания для арифметических и логических операций.
+=
- =
* —
/=
%=
&=
1 =
л _
Составные операторы присваивания записываются более кратко, чем их несоставные эквиваленты. Поэтому их иногда еще называют
У составных операторов присваивания имеются два главных преимущества. Во-первых, они более компактны, чем их 'несокращенные' эквиваленты. И во-вторых, они дают более эффективный исполняемый код, поскольку левый операнд этих операторов вычисляется только один раз. Именно по этим причинам составные операторы присваивания чаще всего применяются в программах, профессионально написанных на С#.
Поразрядные операторы
В C# предусмотрен ряд
Эти операторы называются
Таблица 4.1. Поразрядные операторы
Оператор
Значение
&
Поразрядное И
1
Поразрядное ИДИ
Поразрядное исключающее ИДИ
>>
Сдвиг вправо
<<
Сдвйг влево
Дополнение до 1 (унарный оператор НЕ)
Поразрядные операторы И, ИЛИ, исключающее ИЛИ и НЕ
Поразрядные операторы И, ИЛИ, исключающее ИЛИ и НЕ обозначаются следую
щим образом: &, |, л и
~. Они выполняют те же функции, что и их логические аналоги,
рассмотренные выше.
Но в отличие от логических операторов, поразрядные операто-
ры действуют на уровне отдельных двоичных разрядов. Ниже приведены результаты
поразрядных операций с двоичными единицами и нулями.
р q
р & q plq pAq ~р
0 0
0 0 0 1
1 0
0 110
0 1
0 1 11*
1 1
1 .1 0 0
С точки зрения наиболее распространенного применения поразрядную операцию И можно рассматривать как способ подавления отдельных двоичных разрядов. Это означает, что если какой-нибудь бит в любом из операндов равен 0, то соответствующий бит результата будет сброшен в 0. Например:
1101 ООН 1010 1010
& _
1000 0010
В приведенном ниже примере программы демонстрируется применение поразрядного оператора & для преобразования нечетных чисел в четные. Для этой цели достаточно сбросить младший разряд числа. Например, число 9 имеет следующий двоичный вид: 0000 1001. Если сбросить младший разряд этого числа, то оно станет числом 8, а в двоичной форме — 0000 1000.
// Применить поразрядный оператор И, чтобы сделать число четным.
using System;
class MakeEven {
static void Main() { ushort num; ushort i;”
for(i =1; i <= 10; i++) {
num = i;
Console.WriteLine('num: '¦ + num); num = (ushort) (num & OxFFFE);
Console.WriteLine('num после сброса младшего разряда: '