Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л. Часть 1. Типы данных и операторы присваивани...doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
239.62 Кб
Скачать

If (b) Console.WriteLine ("Эта инструкция выполняется.");

Одноместные арифметические операции (постфиксные и префиксные):

++ - инкремент. Пример: а++ или ++а эквивалентно а=а+1;

- - - декремент. Пример: а-- или --а эквивалентно а=а-1;

a=10;

b=++a; // b=11, a=11

b=a++; // b=10, a=11

Составные операции присваивания

переменная ор= выражение;

Здесь элемент ор означает конкретную арифмети­ческую или логическую операцию (например, + - *), объединяемую с оператором присваивания.

+=

-=

*=

/=

%=

&=

I=

^=

х = х + 10; эквивалентен x += 10;

Поразрядные операции: &, |, ^ (исключающее ИЛИ), ~ (НЕ)

  • Только для целочисленных операндов!

  • Поразрядные операции работают на побитовой основе.

p

q

p&q

pIq

p^q

~p

0

0

0

0

0

1

1

0

0

1

1

0

0

1

0

1

1

1

1

1

1

1

0

0

int a, b=0xB3, c=0xAA;

a = b & c; // a = 0x82

0000 … 0000 1101 0011

& 0000 … 0000 1010 1010

0000 … 0000 1000 0010

Операции сдвига: <<, >>

В С# можно сдвигать значение влево или вправо на заданное число разрядов.

Общий формат записи выражений сдвига такой:

значение << число_битов // сдвиг влево

значение >> число_битов // сдвиг вправо

Здесь:

<< - сдвиг влево;

>> - сдвиг вправо;

значение — это объект операции сдвига;

число битов указывает, на сколько разрядов должно быть сдвинуто значение.

int rez, val = 1;

rez = val << 1; // Сдвиг влево. rez = 2; val=1;

rez = val >> 1; // Сдвиг вправо. rez = 0; val=1;

Если сдвигаемый операнд беззнаковый, то выполняется логический сдвиг (сдвиг кода).

Если сдвигаемый операнд знакового типа, то выполняется арифметический сдвиг.