Лабораторная работа: Операции языка Cи

y >>3=1111 01102>>3=1111 11102= -2

z >>3=0001 01002>>3=0000 00102= 2

24-26. Операции отношения и сравнения обычны. В случае истины они возвращают 1, при нарушении возвращают 0.

27-29. Побитовые операции применяются для целых аргументов.

Таблица4.

Таблицы истинности

& 0 1 ^ 0 1 | 0 1
0 0 0 0 0 1 0 0 1
1 0 1 1 1 0 1 1 1

Пример.

7 & 9 = 00000111 & 00010001 = 000000012 = 1

7 ^ 9 = 00000111 ^ 00010001 = 000101102 = 22

7 | 9 = 00000111 | 00010001 = 000101112 = 23

30-31. Логические операции возвращают 1 (истину) или 0 (ложь).

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

Пример.

7 && 9 = 1

32. Операция «Условие» позволяет иногда заменить условный оператор if-else на операцию.

Пример. Максимальное из двух чисел равно max = (x > y) ? x : y;

Максимальное из трех чисел равно

max = (x>y) ? ( x >z?x:z) : ( y>z?y:z);

33. Результатом присваивания является значение того, что присвоено левому аргументу.

34. Комбинированное присваивание x op = y является компактной записью оператора x = x op y . Однако компилятор эту замен не производит. Комбинированное присваивание является отдельной операцией.

35. «Запятая» является, пожалуй, самой экзотической операцией языка Си. Результатом выражения x ,y является число y .

Пример.

x = 2,5; // x = 2, так как присваивание сильнее запятой

x = (2,5); // x = 5

По-видимому, здесь хотели написать x=2.5

Правила преобразований типов

В выражениях

Если операнд имеет тип не int и не double, то сначала приводится:

- signed char --> int расширением знакового бита (7)

- unsigned char --> int дополнением нулями слева

- short --> int расширением знакового бита (15)

К-во Просмотров: 484
Бесплатно скачать Лабораторная работа: Операции языка Cи