Множественное присваивание

Множественное присваивание – присваивание нескольким переменным одного и того же значения.

a=b=c=3.14159/6;

 

16. Операции увеличения (инкремента) и уменьшения (декремента)

Оператор p=p+1;

можно записать в префиксной форме ++p;

так и в постфиксной p++;

Эти формы отличаются при использовании их в выражении. Если знак декремента (инкремента) предшествует операнду, то сначала выполняется увеличение (уменьшение) значения операнда, а затем операнд участвует в выражении.

Пример: x=12; y=++x;

В результате в y будет храниться число 13. Если знак декремента (инкремента) следует после операнда, то сначала операнд участвует в выражении, а затем выполняется увеличение (уменьшение) значения операнда.

Пример: x=12; y=x++;

В результате в y будет храниться число 12.

 

17. Составное присваивание

К операторам составного присваивания относятся

+=, -=, *=, /=.
Оператор x+=p; предназначен для увеличения x на величину p.

Оператор x-=p; предназначен для уменьшения x на величину p.

Оператор x*=p; предназначен для умножения x на p.

Оператор x/=p; предназначен для деления x на p.

 

18. Операции целочисленной арифметики

К операциям целочисленной арифметики относятся:

целочисленное деление /

остаток от деления %.

При целочисленном делении операция / возвращает целую часть частного (дробная часть отбрасывается), а операция % – остаток от деления. Ниже приведены примеры этих операций

11 % 4 = 3

11 / 4 = 2
7 % 3 = 1
7 / 3 = 2

19. Операции битовой арифметики

Во всех операциях битовой арифметики действия происходят над двоичным представлением целых чисел. К операциям битовой арифметики относятся следующие операции С++.
Арифметическое И (&). Оба операнда переводятся в двоичную систему, затем над ними происходит логическое поразрядное умножение операндов по следующим правилам.

1 & 1 = 1 1 & 0 = 0 0 & 1 =0 0 & 0 = 0

#include <stdio.h>
int main ()
{ int A, B;
A=13;
B=23;
printf("n%dn", A & B) }

Этот участок программы работает следующим образом. Число А=13 и В=23 переводятся в двоичное представление 0000000000001101 и 0000000000010111. Затем над ними поразрядно выполняется логическое умножение.
& 0000000000001101
0000000000010111
0000000000000101
Результат переводится в десятичную систему счисления, в нашем случае будет число 5. Таким образом, 13 & 23 = 5.

Арифметическое ИЛИ (|). Здесь также оба операнда переводятся в двоичную систему, после чего над ними происходит логическое поразрядное сложение операндов по следующим правилам.

1 | 1 = 1 1 | 0 = 1 0 | 1 =1 0 | 0 = 0

Например:
#include <stdio.h>
int main ()
{ int A, B;
A=13;
B=23;
printf("n%dn", A | B) }

Над двоичным представлением значений А и В выполняется логическое сложение.
| 0000000000001101
0000000000010111
0000000000011111
После перевода результата в десятичную систему имеем 13 | 23 =31.

Арифметическое исключающее ИЛИ (^). Здесь также оба операнда переводятся в двоичную систему, после чего над ними происходит логическая поразрядная операция ^ по следующим правилам.

1 ^ 1 = 0 1 ^ 0 = 1 0 ^ 1 =1 0 ^ 0 = 0

Арифметическое отрицание (~). Эта операция выполняется над одним операндом. Применение операции not вызывает побитную инверсию двоичного представления числа. Например, рассмотрим операцию not 13.
0000000000001101
~a 11111111111110010
После перевода результата в десятичную систему получаем ~13=-14.

 

 

20. Сдвиги

 

Сдвиг влево (M << L). Двоичное представление числа M сдвигается влево на L позиций.

Пример 17 << 3. Представляем число 17 в двоичной системе 10001, сдвигаем число на 3 позиции влево 10001000, в десятичной системе это число 136. 17 << 3 =136. Заметим, что сдвиг на один разряд влево соответствует умножению на 2, на два разряда – умножению на 4, на три – умножению на 8. Таким образом, операция M << L эквивалентна M.2L.
Cдвиг вправо (M >> L). В этом случае двоичное представление числа M сдвигается вправо на L позиций, что эквивалентно целочисленному делению числа M на 2L. Например, 25 >> 1=12, 25 >> 3= 3.

 

21. Логические операции и операции отношения

Логические операции выполняются над логическими значениями ИСТИНА (true) и ЛОЖЬ (false). В языке С++ ложью является 0, а истина – любое значение, отличное от нуля. В С++ появился тип bool. Результатами операций отношения (<, <=, >, >=, ==, ~=) или логической операции является ИСТИНА (true, 1) или ЛОЖЬ (false, 0). В языке определены следующие логические операции ИЛИ (||), И(&&), НЕТ (!)

 

22. Операция ?

Для организации разветвлений в простейшем случае можно использовать оператор ? следующей структуры:

Условие? Выражение1: Выражение 2;

Операция работает так.

Если Условие истинно (не равно 0), то результатом будет Выражение1, в противном случае Выражение2.

Например, оператор
y=x<0 ? –x: x;
записывает в переменную y модуль числа х.

 

23. Операция явного приведения типа

Для приведения выражения к другому типу данных в С++ существует операция явного приведения типа:

(тип) выражение

Здесь тип – любой поддерживаемый в С++ тип данных.

Например,
x=5;
y=x/2;
z=(float) x/2;

В результате этого участка программы переменная y принимает значение 2 (результат целочисленного деления), а переменная z – 2.5/

 

24. Ввод с помощью функции scan. Вывод с помощью функции printf