Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Бинарные операции





1.аддитивные операции

+ сложение арифметических операндов

- вычитание

2. мультипликативные операции

* - умножение

/ - деление. При целочисленных операндах абсолютное значение

результата округляется до целого.

20/3=6 -20/3=-6

%- получение остатка от целочисленного деления

 

13%4=1 (-13%4)= -1

13%(-4) = +1

(-13)%(-4)= -1

3. Операции сдвига (только для целочисленных операндов)

Формат выражения с операцией сдвига

<операнд><операция сдвига><операнд>

 

<< сдвиг влево целочисленного операнда на количество разрядов, равное

значению правого целочисленного операнда.

 

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

 

4 << 2 = 16 5 >> 1 = 2

 

4. Поразрядные операции

& - конъюнкция значений целочисленных операндов

| - дизъюнкция

^ - исключающая ИЛИ

 

6 | 5 = 7 110 6 ^ 5 = 3 110

| 101 ^ 101

111 011

 

5. Операции отношения (сравнения)

<, >, <=, >=, = = (равно), != (не равно)

 

6. Логические бинарные операции.

&& - конъюнкция арифметических операндов или отношений.

Результат 0 (ложь)или 1(истина)

|| - дизъюнкция арифметических операндов или отношений.

3 < 5 = 1 3 > 5 = 0 3 = = 5 = 0

(3 + 4 > 5 && 3+5 > 4 && 4 + 5 > 3) = 1

 

7. Операции присваивания.

= присвоить значение выражения из правой части операнду левой части.

p= 5 – 2* х;

*= присвоить операнду левой части произведение значений обоих операндов

p*=2 ~ р = р*2

/= присвоить операнду левой части частное от деления левого операнда

на значение правого.

p/= 2.2 – α ~ p = p/(2.2 – α)

% = присвоить операнду левой части остаток от целочисленного деления

Левого операнда на правый.

N%=3 ~ N = N % 3

+ = присвоить операнду левой части сумму значений обоих операндов

А += В ~ А = А + В

 

- = присвоить операнду левой части разность значений обоих операндов

Х - = 4.3 – Z ~ X = X – (4.3 – Z)

 

<<= a <<=4 ~ a = a << 4

 

>>= a >>=4 ~ a = a >> 4

 

&= присвоить целочисленному операнду левой части значение, полученное

поразрядной конъюнкцией его битового представления с битовым

представлением целочисленного операнда правой части.

e&= 44 ~ e = e & 44

! = - дизъюнкция

^ = - исключающая ИЛИ

 

8. Круглые () скобки играют роль бинарных операций при вызове функций.

 

<имя функции> (< список параметров >)

 

Квадратные скобки [ ] играют роль бинарных операций при индексировании

элементов массива.

 

<имя массива>[<индекс>] - это переменная с индексом

 

В языке С++ принято, что индексы начинаются с нуля, т.е. массив int Z[3]

состоит из элементов z[0], z[1], z[2].

Пример:

Вывести на экран символьный массив ABCDEF в столбик.

 

#include <iostream.h>

void main()

{ char MASSIV[]=”ABCDEF”;

int i = 0; // i – номер элемента массива

while (MASSIV[i]!= ‘\0’)

cout << ‘\n’ << MASSIV[i++];

}

Результат:

A

B

C

D

E

F

9. Условная операция:

 

<выражение1>? <выражение2>: <выражение3>

 

Алгоритм: вычисляется значение выражения1. Если оно истинно, т.е. ≠ 0, то результатом является значение выражения2, в противном случаевыражения3.

Например:

X<0? –X: X

 

10. Каноническая операция явного преобразования типа (как в С):

(<имя типа>) <операнд>

 

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

Например:

(long) 10 - внутренне представление имеет длину 4 байта.

(char) 10 - внутренне представление имеет длину 1 байт.

(float) 10 – внутреннее представление имеет длину 4 байта (формат

вещественного числа)

Еще пример:

#include<iostream.h>

void main()

{ int INTEGER = 50;

float FLOATING = 15.85;

INTEGER = (int) FLOATING; // явное преобразование

cout << “New integer: “;

cout << INTEGER << “\n”;

}

Результат:

New integer: 15

 

Результат будет таким же в данном примере, если использовать неявное преобразование:

 

INTEGER=FLOATING; // неявное преобразование

Кроме рассмотренной канонической операции явного преобразования типов в языке С++ существует функциональная форма преобразования типов:


 

<имя типа>(<операнд>)

 

В этом случае тип имеет простое, несоставное наименование.

Например:

long (2) - длина 4 байта

double (2) - длина 8 байтов

unsigned long(2) - ошибка!

 

Грамматика языка С++ определяет 16 рангов операций. Операции ранга 1 имеют наивысший приоритет. Если в выражении используются несколько операций одного ранга, то они выполняются либо слева–направо (->), либо справа-налево (<-).

 

Ранг Операции Ассоциативность
1. () [ ] (вызов функции, индекс массива)
2. ! ~ + - ++ -- sizeof тип() (унарные)
3. Операции с классами  
4. * / %(бинарные)
5. + -(бинарные)
6. << >>
7. < <= >= >(отношения)
8. = =!=(отношения)
9. &(побитовая конъюнкция)
10. ^(побитовое исключающее ИЛИ)
11. |(побитовая дизъюнкция)
12. &&(логическая конъюнкция)
13. | |(логическая дизъюнкция)
14. ?:(условная операция)
15. = *= /= %= += -= &= ^= |= <<= >>=
16. ,(операция “запятая”)

 

Язык С++ предоставляет программисту возможность самостоятельно задавать порядок выполнения вычислений с помощью скобок. Не существует ограничения на вложенность скобок.

 

 

5. Разделители.

 

В число лексических единиц языка входят разделители:

 

[ ] () { },;: _ * = # &

Вопросы

1. Укажите, какие операции располагаются в порядке возрастания приоритета:

1. =,<,>,!,+,*,/;

2. =,&,+,-,*,/,!;

3. <,>,*,!,&&,||,^;

4. +,&,|,*,~,<,>.

 

2. Логическая операция, возвращающая значение false тогда, когда хотя бы одиниз операндов равен false:

1. &

2. |

3. ^

4. ~

 







Date: 2015-12-12; view: 429; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.01 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию