пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Основные операции языка С++. Приоритеты операций

В С++ имеется большое число операций, которые используются для построения выражений. Операндами выражений являются константы, переменные, другие выражения(например, выражения в круглых скобках или вызовы функций). Смысл операции зависит от числа операндов и типа операндов: например, выражение ' -a ' есть унарная операция (имеющая один операнд) смены знака переменной с именем а, а выражение ' a + b ' есть бинарная операция сложения. Вычисления в выражениях выполняются в соответствии с приоритетами операций. Для изменения приоритета операция используют операцию () - круглые скобки.  Ниже приведены классы основных операций в порядке возрастания приоритета.

1. Операции присваивания или присваивания с вычислением = | += | -= | *= | /= | %= | >>= | <<=

    Примеры
    int  a,b,c,d ;
    a = 0; 
    a = b = c = d = 100;
    a +=  5;   // a=a+5;
    b <<= d;   // b << d;  

2. Логическая операция 'или' ( || ). Если хотя бы один из операндов имеет значение 'истина' (true, не 0, не пустая строка ), то результат 'истина'

    Примеры
    d = 1 ;
    a = 0 || d ;       // a=true
    bool t = false;
    a = 0 || t ;       // a=false

3. Логическая операция 'и' ( && ). Если оба операнда имеет значение 'истина' (true, не 0, не пустая строка ), то результат 'истина'

    Примеры
    d = 1 ;
    a = 0 && d ;       // a=false
    bool t = true;
    a = 1 || t ;       // a=true

4. Поразрядная операция 'или'. Если соответствующий разряд хотя бы одного из операндов имеет значение 1, то соответствующий разрад результат есть 1.

    Пример
    unsigned char c1 = 5  ;             // 0000 0101   
    unsigned char c2 = 15 ;             // 0000 1111   
    unsigned char c3 = c1 | c2;         // 0000 1111

5. Поразрядная операция 'исключающее или'. Если соответствующий разряды операндов имеет разные значения, то соответствующий разрад результат есть 1.

    Пример
    unsigned char c1 = 5  ;             // 0000 0101   
    unsigned char c2 = 15 ;             // 0000 1111   
    unsigned char c3 = c1 ^ c2;         // 0000 1010

6. Поразрядная операция 'и'. Если соответствующие разряды операндов имеет значение 1, то соответствующий разрад результат есть 1.

    Пример
    unsigned char c1 = 5  ;             // 0000 0101   
    unsigned char c2 = 15 ;             // 0000 1111   
    unsigned char c3 = c1 | c2;         // 0000 0101

7. Операции сравнения != | == . Результат операции - логическон значение

    Пример
    unsigned char c1 = 5  ;         
    unsigned char c2 = 15 ;         
    bool t = c1 == c2 ;           // false
    t = c1 != c2 ;                // true 

8. Операции сравнения > | < | >= | <= . Результат операции - логическон значение

    Пример
    unsigned char c1 = 5  ;         
    unsigned char c2 = 15 ;         
    bool t = c1 > c2 ;           // false
    t = c1 <= c2 ;               // true 

9. Операции сдвига >> | <<. Второй операнд определяет количество разрядов, на которые сдвигается первый операнд влево (<<) или вправо (>>). Сдвиг на один разряд влево - умножение целого значения на 2, вправо - деление на 2.

    Пример
    int i = 64;
    int res = i << 2;  // res = 254
    i = 512;
    res = i >> 3;      // res = 64

10. Арифметические операции + | - 
   11.  Арифметические операции * | / | %

    Пример
    int i = 64;
    int j = 10;
    int res = i / j;         // res = 6;
        res = i % j;         // res = 4; 
    double j_ = 10;  
    double res_ = i / j_;    // res = 6.4;

12. Унарные операции !(отрицание) | + | -

    Пример
    int i1 = 100, j1 = -1;
    i1 = !i1;               // i1 = 0;
    j1 = !j1;               // j1 = 0;

13. Операции инкремента и декремента ++ | -- изменяют значение переменой на 1.

    Пример
    int i1 = 100, j1 = -1;
    i1++;       // i1=101
    ++j1;       // j1=0 
    ++++++i1;   // i1=104  любое количество префиксных операцтй ++ или -- допустимо
    i1++++;     // недопустимо! постфиксная операция ++ или -- может быть только одна
    int res;
    res = ++i1 + j1--; // исх. знач. i1 = 104  j1 =0
                       // рез. знач. i1 = 105  j1 =-1 res = 105
                       // i1 измен. до вычисл. рез-та, j1-после выч. рез-та

Замечания.

  1. Операции      ~ ( дополнение ) ,  
 & ( И ) , 
 ^ ( исключающее ИЛИ ) ,
 ! ( отрицание) , 
<< ( логический сдвиг влево ) ,
>> ( логический сдвиг вправо )

применяются к целым типам, и  нет отдельного типа данных для логических действий.

 

2. Инфиксные и постфиксные операции ++ ( инкремент ) и -- ( декремент ) применяются только к переменным, но не к выражениям.


05.06.2015; 07:56
хиты: 124
рейтинг:0
Гуманитарные науки
изобразительные искусства
каллиграфия
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь