Cpp операции. Логические операции. Одномерные и многомерные массивы

Из операций и операндов строятся операторы- выражения, которые служат для получения значения. Рассмотрим основные операции, которые будем разделять на следующие классы: унарные, применяются к одному операнду; бинарные, применяются к двум операндам; тернарная операция (единственная), применяется к трем операндам. Некоторые операции просто будут перечислены, а более подробно будут рассмотрены позднее.

Унарные операции:

«-» - «унарный минус» применяется к арифметическим операндам (целым, вещественным переменным или константам), результат операции значение операнда с противоположным знаком;

«+» - «унарный плюс» операция ничего не делает, введена для симметрии с операцией «унарный минус»;

«*» - «обращение по адресу», операция применяется к указателям, результат операции значение объекта (операнда), на который указывает указатель;

«&» - «получение адреса», результат операции – адрес объекта (переменной);

«~» - «поразрядное отрицание» операция применяется только к целым операндам, результат операции целое значение, в котором разряды исходного операнда инвертированы;

«!» - «логическое отрицание» («логическое НЕ»), дает в результате значение 0, если операнд есть истина (не нуль), и значение 1, если операнд равен нулю (в Visual C++ тип результата bool), следует отметить, что в базовом Си стандарта ANSI отсутствовал в явном виде логический тип, который бы принимал 2 значения: «истина» и «ложь», вместо логического типа использовался, как правило, целый тип, значение 0- интерпретировалось, как «ложь», любое значение отличное от 0 являлось «истина»;

(<тип>) – «операция преобразования типа», была рассмотрена ранее;

«sizeof» – операция определения размера предназначена для вычисления размера объекта или типа в байтах, и имеет две формы:

sizeof выражение или sizeof(выражение)

sizeof(тип)

Инкремент (увеличение на 1), -- - декремент (уменьшение на 1), имеют две формы записи - префиксную, когда операция записывается перед операндом, и постфиксную. Если операции используются сами по себе (в операторе только одна операция), то разницы между двумя формами нет. Если операция применяется внутри выражения с другими операциями, то в префиксной форме сначала изменяется операнд, а затем его новое значение подставляется в выражение, а в постфиксной форме в выражение подставляется старое значение, а затем изменяется значение операнда. Например,

int i=10, j;

j=++i; // Префиксная форма операции

В результате выполнения данного фрагмента, i и j будут равны 11 (переменной j присваивается новое значение i, увеличенное на 1), если изменить форму операции ++:

int i=10, j;

j=i++; // Постфиксная форма операции

то, после выполнения i будет равно 11, а j будет равно 10, переменной j присваивается старое значение переменной i , а затем оно увеличивается на 1. Операции чаще применяют к целым операндам, но их можно применять к вещественным операндам и даже к указателям.

Бинарные операции можно разделить на следующие классы:

Арифметические:

«+» - бинарный плюс;

«-» - бинарный минус;

«*» - умножение;

«/» - деление;

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

Первые четыре операции применяются к арифметическим операндам: целым или вещественным, операции «+» и «-» ограниченным способом могут применяться к указателям. Операция – «%» применяется только к целым операндам.

Логические:

«&&» - логическое И;

«||» - логическое ИЛИ;

«^» - логическое исключающее ИЛИ.

Операнды логических операций могут иметь арифметический тип или быть указателями, при этом операнды в каждой операции могут быть различных типов. Преобразования типов не производятся, каждый операнд оценивается с точки зрения его эквивалентности нулю (операнд, равный нулю, рассматривается как «ложь», не равный нулю - как «истина»). В Visual C++ тип результата int или bool в зависимости от типов операндов.

Поразрядные:

«&» - поразрядное И;

«|» - поразрядное ИЛИ;

«^» - поразрядное исключающее ИЛИ;

«>>» - поразрядный сдвиг вправо;

«<<» - поразрядный сдвиг влево.

Данные операции применяются только к целочисленным операндам и работают с их двоичными представлениями. При выполнении операций «&», «|», «^» операнды сопоставляются побитово (первый бит первого операнда с первым битом второго, второй бит первого операнда со вторым битом второго, и т д.).

Операции сдвига сдвигают двоичное представление первого операнда влево или вправо на количество двоичных разрядов, заданное вторым операндом. При сдвиге влево «<<» освободившиеся разряды обнуляются. При сдвиге вправо «>>» освободившиеся биты заполняются нулями, если первый операнд беззнакового типа, и знаковым разрядом в противном случае.

Отношения (сравнения):

«==» - равно (не путать с операцией присваивания «=»);

«!=» - не равно;

«>» - больше;

«<» - меньше;

«>=» - больше или равно;

«<=» - меньше или равно.

Операции отношения сравнивают первый операнд со вторым. Операнды могут быть арифметического типа или указателями. Результатом операции является значение «истина» (любое значение не равное 0, как правило, 1) или «ложь» (0). В Visual C++ тип результата bool .

Присваивания:

«=» - простое присваивание.

Первый операнд должен быть L-значением область памяти будет занесен результат операции. второй - выражением. Сначала вычисляется выражение, стоящее в правой части операции, а потом его результат записывается в область памяти, указанную в левой части. Так называемое, L-значение (L- value) (леводопустимое значение, может быть использовано слева от операции присваивания), так обозначается любое выражение, адресующее некоторый участок памяти, в который можно занести значение.

op= (где op – символ бинарной операции) – комбинированное присваивание, комбинация бинарное операции с операцией присваивания, например, «+=» - присваивание со сложением, по аналогии существуют операции: «*=», «/=», «-=», «%=», «&=», «|=», «^=» и др. Комбинированные операции работают по следующему правилу:

i+=10; аналогично i=i+10;

Другие бинарные операции , просто их перечислим:

() – вызов функции;

– обращение к элементу массива;

«.» («точка») – обращение к полю переменной структурного типа;

«->» - обращение к полю переменной структурного типа через указатель;

«,» («запятая») – последовательное вычисление, может ставится между выражениями, выражения вычисляются последовательно, результат операции результат второго операнда (выражения).

Тернарная операция:

«?:» - условная операция.

Формат: <операнд1> ? <операнд2> : <операнд3>

Первый операнд имеет тип, заменяющий логический – арифметический или указатель, если первый операнд имеет значение «истинно», то результат операции – значение второго операнда, а если «ложь», то результат операции значение третьего операнда. Пример,

y= x>=0 ? x: -x;

переменной y присваивается значения модуля переменной x.

В С++ существуют три поразрядные логические операции:

  1. поразрядное И , обозначение: &
  2. поразрядное исключающее ИЛИ , обозначение: ^
  3. поразрядное включающее ИЛИ , обозначение: |

Так же в С++ существуют : ИЛИ — || ; И — && . У многих возникает вопрос, “Чем отличаются операции: & и && ; | и || ?”. Ответ на этот вопрос можно получить, если понять принцип работы поразрядных логических операций. Сразу могу сказать одно, что логические операции && и || используются только для построения логических условий. Тогда как поразрядные логические операции применяются в бинарной арифметике. Данные операции работают с битами ячеек памяти, причём операнды и результат могут быть заданы в другой форме, например, в десятичной. Дальше рассмотрим каждую из операций подробно.

Поразрядная логическая операция И .
Обозначения: X, Y – операнды; F – результат выполнения логической операции

Таблица 1 — Таблица истинности поразрядного И
X Y F
0 0 0
0 1 0
1 0 0
1 1 1

Из таблицы истинности видно, что результат будет нулевым, если хотя бы один из битов 0. Если оба бита равны 1, то результат равен 1.
Пример с числами:
Для упрощения вычислений возьмем четырёхразрядные(4-х разрядный двоичный код) положительные операнды. Сначала переводим числа в двоичный код, а потом выполняем операцию.

1111 = 15 1000 = 8
& 1001 = 9 & 1010 = 10
1001 = 9 1000 = 8
Результат равен 9. Результат равен 8.

Поразрядное исключающее ИЛИ .

Таблица 2 — Таблица истинности поразрядного исключающего ИЛИ
X Y F
0 0 0
0 1 1
1 0 1
1 1 0

Из таблицы истинности видно, что результат будет нулевым, если оба бита будут равны, во всех остальных случаях результат равен 1.
Пример с числами:

1111 = 15 1000 = 8
^ 1001 = 9 ^ 1010 = 10
0110 = 6 0010 = 2
Результат равен 6. Результат равен 2.

Поразрядное включающее ИЛИ .

Таблица 3 — Таблица истинности поразрядного включающего ИЛИ
X Y F
0 0 0
0 1 1
1 0 1
1 1 1

Из таблицы истинности видно, что результат будет нулевым, если оба бита будут равны 0, во всех остальных случаях результат равен 1.
Пример с числами:

1111 = 15 1000 = 8
| 1001 = 9 | 1010 = 10
1111 = 15 1010 = 10
Результат равен 15. Результат равен 10.

Все вычисления проводились только с положительными числами, что же касается отрицательных чисел, то результат формируется несколько иначе, но это уже материал схемотехники а не программирования, а если честно, то ничего сложно там нет. Далее показан пример программы с использованием поразрядных логических операций.

// log.cpp: определяет точку входа для консольного приложения. #include "stdafx.h" #include << "\n 15 & 9 = " << (15 & 9) << endl; cout << "\n 15 ^ 9 = " << (15 ^ 9) << endl; cout << "\n 15 | 9 = " << (15 | 9) << endl; system("pause"); return 0; }

// код Code::Blocks

// код Dev-C++

// log.cpp: определяет точку входа для консольного приложения. #include using namespace std; int main(int argc, char* argv) { cout << "\n 15 & 9 = " << (15 & 9) << endl; cout << "\n 15 ^ 9 = " << (15 ^ 9) << endl; cout << "\n 15 | 9 = " << (15 | 9) << endl; return 0; }

При использовании поразрядных логических операций в логических условиях результат получается такой же, как и при использовании логических операций && || . И это понятно, так как логика у них одинакова!!

В С++ ложному условию соответствует нулевое значение, а истинному любое целое значение большее нуля. Так что константы true и false интерпретируются как целые числа, после чего поразрядные логические операции поразрядно формируют результат условия. Но прямое назначение поразрядных логических операций – это бинарная арифметика. Результат работы программы (см. Рисунок 1).

15 & 9 = 9 15 ^ 9 = 6 15 | 9 = 15 Для продолжения нажмите любую клавишу. . .

Рисунок 1 — Поразрядные логические операции C++

Операции делятся на унарные, бинарные и тернарную по количеству участвующих в них операндов. Большинство стандартных операций может быть переопределено (перегружено).

Одними из самых первых операци, с которыми сталкивается изучающий язык программирования C++, являются операции присваивания, поэтому рассмотрим эти операции в самом начале.

Операции присваивания (=, +=, -=, *= и т. д.)

Операции присваивания могут использоваться в программе как законченные операторы.

Формат операции простого присваивания (=):

операнд_1 = операнд_2

Первый операнд должен быть L-значением, второй - выражением. Сначала вычисляется выражение, стоящее в правой части операции, а потом его результат записывается в область памяти, указанную в левой части (мнемоническое правило: «присваивание - это передача данных «налево»»). То, что ранее хранилось в этой области памяти, естественно, теряется.

#include
int main() {
int a = 3 , b = 5 , с = 7 ;
a = b; b = a; с = с + 1 ;
cout << "a = " << a;
cout << "\t b = " << b;
cout << "\t с = " << c;
return 0 ;
}

Результат работы программы:

Внимание

При присваивании производится преобразование типа выражения к типу L-значения, что может привести к потере информации.

В сложных операциях присваивания (+=, *=, /= и т п.) при вычислении выражения, стоящего в правой части, используется и L-значение из левой части. Например, при сложении с присваиванием ко второму операнду прибавляется первый, и результат записывается в первый операнд, то есть выражение а += b является более компактной записью выражения а = а + b.

Основные операции языка программирования C++

В таблице ниже приведен список основных операций, определенных в языке C++, в соответствии с их приоритетами (по убыванию приоритетов, операции с разными приоритетами разделены чертой).

Все приведенные в таблице операции, кроме условной и sizeof, могут быть переопределены (перегружены).

Операция Краткое описание
Унарные операции
:: доступ к области видимости
. выбор
-> выбор
индексация
() вызов функции
<тип>() конструирование
++ постфиксный инкремент
постфиксный декремент
typeid идентификация типа
dynamic_cast преобразование типа с проверкой на этапе выполнения
static_cast преобразование типа с проверкой на этапе компиляции
reinterpret_cast преобразование типа без проверки
const_cast константное преобразование типа
sizeof размер объекта или типа
префиксный декремент
++ префиксный инкремент
~ поразрядное отрицание
! логическое отрицание
арифметическое отрицание (унарный минус)
+ унарный плюс
& взятие адреса
* разадресация
new выделение памяти
delete освобождение памяти
(<тип>) преобразование типа
.* выбор
->* выбор
Бинарные и тернарные операции
* умножение
/ деление
% остаток от деления
+ сложение
вычитание
<< сдвиг влево
>> сдвиг вправо
< меньше
<= меньше или равно
> больше
>= больше или равно
== равно
!= не равно
& поразрядная конъюнкция (И)
^ поразрядное исключающее ИЛИ
| поразрядная дизъюнкция (ИЛИ)
&& логическое И
|| логическое ИЛИ
? : условная операция (тернарная)
= присваивание
*= умножение с присваиванием
/= деление с присваиванием
%= остаток отделения с присваиванием
+= сложение с присваиванием
-= вычитание с присваиванием
<<= сдвиг влево с присваиванием
>>= сдвиг вправо с присваиванием
&= поразрядное И с присваиванием
|= поразрядное ИЛИ с присваиванием
^= поразрядное исключающее ИЛИ с присваиванием
throw исключение
, последовательное вычисление

Один и тот же знак может интерпретироваться по-разному в зависимости от контекста.

Рассмотрим основные операции подробнее.

Операции увеличения и уменьшения на 1 (++ и —)

Эти операции, называемые также инкрементом и декрементом, имеют две формы записи - префиксную , когда операция записывается перед операндом, и постфиксную . В префиксной
форме сначала изменяется операнд, а затем его значение становится результирующим значением выражения, а в постфиксной форме значением выражения является исходное значение операнда, после чего он изменяется.

#include
int main() {
int x = 3 . у = 3 :
printf ("Значение префиксного выражения: %d\n " , ++ х) :
printf ("Значение постфиксного выражения: %d\n " , у++ ) ;
printf ("Значение х после приращения: %d\n " , х) ;
printf ("Значение у после приращения: %d\n " , у) ;
return 0 ;
}

Результат работы программы:

Значение префиксного выражения: 4
Значение постфиксного выражения: 3
Значение х после приращения: 4
Значение у после приращения: 4

Операндом операции инкремента в общем случае является так называемое L-значение (L-value). Так обозначается любое выражение, адресующее некоторый участок памяти, в который можно занести значение. Название произошло от операции присваивания, поскольку именно ее левая (Left) часть определяет, в какую область памяти будет занесен результат операции. Переменная является частным случаем L-значения.

Операция определения размера sizeof

Она предназначена для вычисления размера объекта или типа в байтах, и имеет две формы:

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

#1nclude
int ma1n() {
float x = 1 ;
cout << "sizeof (float) :" << sizeof (float ) ;
cout << "\n sizeof x:" << sizeof x;
cout << "\n sizeof (x + 1.0) :" << sizeof (x + 1.0 ) :
return 0 :
}

Результат работы профаммы:

sizeof (float): 4
sizeof x: 4
sizeof (x + 1.0): 8

Последний результат связан с тем, что вещественные константы по умолчанию имеют тип doublе, к которому, как к более длинному, приводится тип переменной x и всего выражения. Скобки необходимы для того чтобы выражение, стоящее в них, вычислялось раньше операции приведения типа, имеющей больший приоритет, чем сложение.

Операции отрицания (-, ! и ~)

Арифметическое отрицание (унарный минус -) изменяет знак операнда целого или вещественного типа на противоположный. Логическое отрицание (!) дает в результате значение 0, если операнд есть истина (не нуль), и значение 1, если операнд равен нулю. Операнд должен быть целого или вещественного типа, а может иметь также тип указатель. Поразрядное отрицание (~) , часто называемое побитовым, инвертирует каждый разряд в двоичном представлении целочисленного операнда.

Деление (/) и остаток от деления (%)

Операция деления применима к операндам арифметического типа. Если оба операнда целочисленные, результат операции округляется до целого числа, в противном случае тип результата определяется правилами преобразования. Операция остатка от деления применяется только к целочисленным операндам. Знак результата зависит от реализации.

#include
int main() {
int x = 11 , у = 4 ;
float z = 4 ;
printf ("Результаты деления: %d %f\n " , x/ y, x/ z) ;
printf ("Остаток: %d\n " , x% y) ;
return 0 ;
}

Результат работы программы:

Результаты деления: 2 2.750000
Остаток: 3

Операции сдвига (<< и >>)

Применяются к целочисленным операндам. Они сдвигают двоичное представление первого операнда влево или вправо на количество двоичных разрядов, заданное вторым операндом. При сдвиге влево (<<) освободившиеся разряды обнуляются. При сдвиге вправо (>>) освободившиеся биты заполняются нулями, если первый операнд беззнакового типа, и знаковым разрядом в противном случае. Операции сдвига не учитывают переполнение и потерю значимости.

Операции отношения (<. <=, >, >=, ==, !=)

Сравнивают первый операнд со вторым. Операнды могут быть арифметического типа или указателями. Результатом операции является значение true или false (любое значение, не равное нулю, интерпретируется как true). Операции сравнения на равенство и неравенство имеют меньший приоритет, чем остальные операции сравнения.

Внимание

Обратите внимание па разницу между операцией проверки на равенство (==) и операцией присваивания (=), результатом которой является значение, присвоенное левому операнду.

Поразрядные операции (&, |, ^)

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

При поразрядной конъюнкции , или поразрядном И (операция обозначается &) бит результата равен 1 только тогда, когда соответствующие биты обоих операндов равны 1.

При поразрядной дизъюнкции , или поразрядном ИЛИ (операция обозначается |) бит результата равен 1 тогда, когда соответствующий бит хотя бы одного из операндов равен 1.

При поразрядном исключающем ИЛИ (операция обозначается ^) бит результата равен 1 только тогда, когда соответствующий бит только одного из операндов равен 1.

#include
int main() {
cout << "\n 6 & 5 = " << (6 & 5 ) ;
cout << "\n 6 | 5 = " << (6 | 5 ) ;
cout << "\n 6 ^ 5 = " << (6 ^ 5 ) ;
return 0 ;
}

Результат работы программы:

6 & 5 = 4
6 | 5 = 7
6 ^ 5 = 3

Логические операции (&& и ||)

Операнды логических операций И (&&) и ИЛИ (||) могут иметь арифметический тип или быть указателями, при этом операнды в каждой операции могут быть различных типов. Преобразования типов не производятся, каждый операнд оценивается с точки зрения его эквивалентности нулю (операнд, равный нулю, рассматривается как false, не равный нулю - как true).

Результатом логической операции является true или false. Результат операции логическое И имеет значение true только если оба операнда имеют значение true. Результат операции логическое ИЛИ имеет значение true, если хотя бы один из операндов имеет значение true. Логические операции выполняются слева направо. Если значения первого операнда достаточно, чтобы определить результат операции, второй операнд не вычисляется.

Условная операция (?:)

Эта операция тернарная, то есть имеет три операнда.

Ее формат:

операнд_1 ? операнд_2: операнд_3

Первый операнд может иметь арифметический тип или быть указателем. Он оценивается с точки зрения его эквивалентности нулю (операнд, равный нулю, рассматривается как false, не равный пулю - как true). Если результат вычисления операнда 1 равен true, то результатом условной операции будет значение второго операнда, иначе - третьего операнда. Вычисляется всегда либо второй операнд, либо третий. Их тип может различаться. Условная операция является сокращенной формой условного оператора if.

#include
int main() {
int a = 11 , b = 4 , max;
max = (b > a) ? b : a;
printf ("Наибольшее число: %d" , max) ;
return 0 ;
}

Результат работы программы:

Наибольшее число: 11

Другой пример применения условной операции. Требуется, чтобы некоторая целая величина увеличивалась на 1, если ее значение не превышает п, а иначе принимала значение 1:

i = (1 < n) ? i + 1 : 1 ;

По материалам книги Т.А. Павловской «С++. Программирование на языке высокого уровня»

7.2 Унарные Операции

Выражения с унарными операциями группируют справа налво:

унарное_выражение: унарная_операция выражение выражение ++ выражение – sizeof выражение sizeof (имя_типа) (имя_типа) выражение простое_имя_типа (список_выражений) new имя_типа инициализатор opt new (имя_типа) delete выражение delete [ выражение ] выражение унарная_операция: одна из * amp; – ! ~ ++ –

Унарная операция * означает косвенное обращение: выражение должно быть указателем и результатом будет lvalue, ссылающееся на объект, на который указывает выражение. Если выражение имеет тип «указатель на...», то тип результата есть «...».

Результатом унарной операции amp; является указатель на объект, на который ссылается операнд. Операнд должен быть lvalue. Если выражение имеет тип «...», то тип результата есть «указатель на...».

Результатом унарной операции + является значение ее опранда после выполнения обычных арифметических преобразований. Операнд должен быть арифметического типа.

Результатом унарной операции – является отрицательное значение ее операнда. Операнд должен иметь целый тип. Выпоняются обычные арифметические преобразования. Отрицательое значение беззнаковой величины вычислятся посредством вычитния ее значения из 2n, где n -число битов в целом типа int.

Результатом операции логического отрицания! является 1, если значение операнда 0, и 0, если значение операнда не 0. Результат имеет тип int. Применима к любому арифметическому типу или к указателям.

Операция ~ дает дополнение значения операнда до единицы. Выполняются обычные арифметические преобразования. Операнд должен иметь целочисленный тип.

Из книги C++ автора Хилл Мюррей

6.2.1 Бинарные и Унарные Операции Бинарная операция может быть определена или как функция член, получающая один параметр, или как функция друг, получющая два параметра. Таким образом, для любой бинарной оперции @ aa@bb может интерпретироваться или как aa.operator@(bb), или как

Из книги Модель зрелости процессов разработки программного обеспечения автора Паулк Марк

7.2 Унарные Операции Выражения с унарными операциями группируют справа налво:унарное_выражение: унарная_операция выражение выражение ++ выражение – sizeof выражение sizeof (имя_типа) (имя_типа) выражение простое_имя_типа (список_выражений) new имя_типа инициализатор opt new (

Из книги Базы данных: конспект лекций автора Автор неизвестен

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

Из книги Справочное руководство по C++ автора Страустрап Бьярн

Лекция № 4. Реляционная алгебра. Унарные операции Реляционная алгебра, как нетрудно догадаться, – это особая разновидность алгебры, в которой все операции производятся над реляционными моделями данных, т. е. над отношениями.В табличных терминах отношение включает в себя

Из книги Язык программирования С# 2005 и платформа.NET 2.0. автора Троелсен Эндрю

2. Унарные операции на языке структурированных запросов В этом параграфе мы рассмотрим, как реализуются на языке структурированных запросов с помощью оператора Select уже знакомые нам унарные операции выборки, проекции и переименования.Важно заметить, что если раньше мы

Из книги Основы AS/400 автора Солтис Фрэнк

R.5.3 Унарные операции Выражения с унарными операциями выполняются справа налево.унарное-выражение: постфиксное-выражение ++ унарное выражение -- унарное выражение унарная-операция выражение-приведения sizeof унарная-операция sizeof

Из книги Windows Script Host для Windows 2000/XP автора Попов Андрей Владимирович

R.13.4.1 Унарные операции Префиксную унарную операцию можно задать с помощью нестатической функции-члена (§R.9.3), без параметров или с помощью функции, не являющейся членом, с одним параметром. Таким образом, для всякой префиксной унарной операции @, выражение @x может

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Операции += и -= Если вы изучаете C#, уже имея опыт использования C++, то можете обратить внимание на отсутствие возможности перегрузки операторных сокращений, включающих операцию присваивания (+=, -= и т.д.). Не волнуйтесь, в C# операторные сокращения с присваиванием

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Код операции MI В таблице 4.14 показано назначение битов кода операции MI. Бит 3 задает вычислительный или невычислительный формат команды. Во втором случае функция, которая должна быть выполнена, закодирована в битах 5-15 кода операции. Функция, выполняемая вычислительной

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Унарные операторы Унарными называются операторы, которые применяются к одному операнду (табл. П1.3).Таблица П1.3. Унарные операторы Оператор Описание - Изменение знака на противоположный! Дополнение. Используется для изменения значения логической переменной на

Из книги C++ для начинающих автора Липпман Стенли

16.1. Операции tty Устройства tty предоставляют огромное количество опций обработки данных; они относятся к наиболее сложным устройствам ядра. Настраивать можно опции обработки входных и выходных данных, а также потока данных. Также можно контролировать ограниченное

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

Унарные операции Унарный минус (-)Операция унарного минуса выполняет арифметическое отрицание своего операнда. Операнд должен быть целым или плавающим значением. Выполняются преобразования операнда по умолчанию. Тип результата совпадает с преобразованным типом

Из книги автора

Операции В языке Си предусматриваются поразрядные логические операции и операции сдвига. Далее мы будем записывать значения в двоичном коде, чтобы вы могли видеть, как выполняются операции. В реальных программах используются целые переменные или константы, записанные в

Из книги автора

Операции Теперь рассмотрим, что можно и нельзя делать с величинами типа enum. Вы можете присвоить константу типа enum переменной того же типа enum feline pet;pet = tiger;Нельзя использовать другие операции присваивания: pet += cat; /* недопустимо */Можно провести сравнение с целью выявления

Из книги автора

4.3. Операции сравнения и логические операции Символ операции Значение Использование! Логическое НЕ!expr меньше exprexpr = Меньше либо равно expr=expr больше exprexpr = больше либо равно expr=expr == равно expr==expr != не равно expr!=expr логическое

Из книги автора

Операции is и as Операция is предназначена для проверки того, имеет ли классовая переменная указанный динамический тип. Операция as позволяет безопасно преобразовать переменную одного классового типа к другому классовому типу (в отличие от явного приведения классового