Операції зсуву - студопедія

5> 2 4> 7 - брехня

5> 2 || 4> 7 - істина

У операції. (НЕ) дуже високий пріоритет (вище тільки у дужок). і || вище привласнення, але нижче ніж відносини.

a> b b> c || b> d

((A> b) (B> c) || (B> d))

Порозрядні логічні операції. Призводять до зміни значення змінної. Дії виробляються над даними класу цілих і char. Вони називаються порозрядному, тому що вони виконуються окремо над кожним розрядом незалежно від розряду, що знаходиться зліва чи справа.

Доповнення до 1 або поразрядное заперечення. Це унарна операція змінює кожну 1 на 0, а 0 на 1.

(11010) отримаємо (00101)

2) Порозрядне І служить для скидання бітів. Ця бінарна операція порівнює послідовно розряд за розрядом два операнда. Результат дорівнює 1, якщо обидва відповідних розряду операндів рівні 1

(10010011) (00111101) => (00010001)

3) | Порозрядне АБО служить для установки бітів. Ця бінарна операція порівнює послідовно розряд за розрядом два операнда. Результат дорівнює 1, якщо один (або обидва) з відповідних розряду операндів дорівнює 1.

(10010011) | (00111101) => (10111111)

4) ^ виключає Або. Результат дорівнює 1, якщо один з розрядів дорівнює 1 (але не обидва)

(10010011) ^ (00111101) => (10101110)

Операції зсуву здійснюють порозрядному зрушення операнда. Величина зсуву визначається значенням правого операнда. Зрушувані розряди губляться. При зсуві вправо знаковий розряд розмножується.

1) <<сдвиг влево Разряды левого операнда сдвигаются влево на число позиций, указанное правым операндом. Освобождающиеся позиции заполняются нулями, а разряды, сдвигаемые за левый предел левого операнда, теряются.

2) >> зрушення вправо Розряди лівого операнда зсуваються вправо на число позицій, вказане правим операндом. Розряди, що зсуваються за правий межа лівого операнда, губляться. Для беззнакових чисел звільнені зліва розряди заповнюються нулями. Для чисел зі знаком лівий розряд приймає значення знака.

Ці операції виконують ефективне множення і ділення на ступені 2:

number<

number >> n - ділить number на 2 в n-го ступеня

Операція складається з двох частин (? І :) і містить три операнда (операнд1. Операнд2. Операнд 3). Це більш короткий спосіб запису оператора if else і називається «умовним виразом».

Наприклад: умовний вираз x = (y<0)? –y. y; означает, что если у меньше 0, то х = -у, в противном случае х = у. В терминах оператора if else это выглядело бы так:

Умовні вирази більш компактні і призводять до отримання більш компактного машинного коду.

Т.ч. якщо умова операнда 1 істинно, то значенням умовного виразу є величина операнда 2, якщо умова операнда 1 хибно - величина операнда 2.

Умовний вираз зручно використовувати, коли є деяка змінна, якій можна привласнити одне з двох можливих значень.