Вопрос .Операции с целыми числами
Здесь имеется операция деления и определения остатка.
11 % 4 = 3
11 / 4 = 2
7 % 3 = 1
7 / 3 = 2
26 / 5 = 5
26 % 5 = 1
18. Арифметическое И (&).
Операция выполняются над отдельными битами по следующим правилам.
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%d\n", A & B);
}
Каждое из чисел А=13 и В=23 представляются в двоичном представлении 0000000000001101 и 0000000000010111. Далее выполняется операция И (&)
& 0000000000001101
0000000000010111
0000000000000101
Результат представляется в десятичном представлении.Имеем 13 & 23 = 5.
19. Арифметическое ИЛИ (|)
По следующим правилам
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%d\n", A | B)
}
Имеем
| 0000000000001101
0000000000010111
0000000000011111
В десятичной системе 13 | 23 =31.
20 . Арифметическое исключающее ИЛИ (^)
По следующим правилам
1 ^ 1 = 0 1 ^ 0 = 1 0 ^ 1 =1 0 ^ 0 = 0
| 0000000000001101
0000000000010111
0000000000011010
В десятичной системе 13 ^ 23 =26.
21 вопрос * Арифметичекое отриц.,сдвиг влево,сдвиг вправо
Арифметическое отрицание (~).
Каждый бит инвертируется
0000000000001101
~a 1111111111110010
В десятичной системе имеем ~13=-14.
Сдвиг влево (M << L).
Целое число M смещается влево на L позиций влево.
Пример
17 << 3.
17 в двоичной системе 00010001, После смещения влево на 3 позиции получим 10001000, в десятичной системе 136. То есть 17 << 3 =136. Отметим что смещение влево на 1 позицию означает умножение на 2 на две
позиции на 4 То есть M << L равно M.2L.
Смещение вправо M >> L.
Смещение вправо M >> L. Пример 25 >> 2. 25 в двоичной системе 11011 .После смещения вправо на 2 позиции получим 00110, т.е. 6. Отметим что смещение вправо на 1 позицию означает деление на 2 , на две позиции на 4 , то есть M >>L равно M /2L.
22 вопрос * Логические операции и отношения
Эти операции выполняются над логическими данными. Имеются два логических значения (TRUE) и (False). В языке C 1 это true, 0 это false . В С++ появился новый тип данных bool . Результатом логических операций являются (TRUE,1) или (FALSE, 0). В C имеются операции ИЛИ (||), И(&&), Отрицание (!) (таблица).
Логические операции
A | B | !A | A&&B | A||B |
ОПЕРАЦИЯ ?
Для программирования разветвления можно использовать следующую структуру:
Условие ? Выражение 1: выражение 2;
Если условие верно вычисляется 1 выражение , в противном случае 2 выражение
Пример .
y=x<0 ? –x: x;
23 вопрос * Приоритеты операций и стандарт. математические функ.
Приоритеты операций
Имя функции | Математическое определение |
abs(x) | Абсолютная величина |
fabs(x) | Абсолютная величина для вещественного аргумента |
sin(x) | Sin |
cos(x) | Cos |
tan(x) | tg |
atan(x) | Arctg |
atan2(y,x) | Arctg в интервале |
sinh(x) | Гиперболический sin |
cosh(x) | Гиперболический cos |
tanh(x) | Гиперболический tg |
exp(x) | ex |
log(x) | ln(x), x>0 |
log10(x) | Десятичный log10(x), x>0 |
pow(x,y) | xy. Не допустимы если х=0, y≤0 или x<0 и y –не целые |
sqrt(x) | , x≥0 |
Вычисление степени Х имеет ряд проблем-функция pow(x,y) не позволяет возводить отрицательные числа в нецелую степень, в этом случае можно использовать следующее выражение , что в синтаксисе С/С++ запишется как exp(n*log(fabs(x))) или –pow(fabs(x),y).
24 вопрос * Оператор присваивания