Простая форма операции присваивания

Формат операции:

Имя переменной = выражение

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

1. Переменной х присвоить значение 2.

2. Переменной y присвоить значение х, умноженное на 2.

3. Переменной z присвоить значение y/2.

4. Переменной а присвоить среднее арифметическое чисел х, y, z.(самостоятельно).

int main()

{

int х;

int y;

x=2;

y=x*2;

double z;

z=y/2;

}

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

int main()

{

int х, temp;

int y;

x=2;

y=3;

temp=x;

x=y;

y=temp;

}

Правила по присваиванию

· Переменной целого типа можно присваивать выражение целого типа. Присваивание выполниться корректно, если значение выражения принадлежит диапазону переменной.

· Переменной целого типа можно присваивать выражение вещественного типа. Но при присваивании в переменную будет записано целое число – округленное вещественное число.

· Переменной вещественного типа можно присваивать выражение вещественного типа, но может произойти усечение точности, если тип переменной ниже тпа выражения

.

Сокращенная форма операции присваивания

Формат

<имя переменной><операция>=выражение

Где <операция> : +, -, *,/, %, <<, >>

Действие: изменяет значение переменной в соответствии с операцией и выражением. Например, оператор - увеличить значение переменной х на 2, будет записан так: x+=2;

Множественная форма операции присваивания

<имя переменной1>=<имя переменной2>∙∙∙<имя переменнойN>=выражение

Действие: выполняется справа налево, значение выражения присваивается переменной <имя переменнойN>, затем значение этой переменной присваивается предыдущей переменной и так далее до первой.

int main()

{

int A,B,C;

A=B=C=10;

}

Инкремент и декремент

а) Инкремент постфиксный

формат

<имя переменной>++

Действие: использование текущего значения переменной, а после этого увеличение значения переменной на 1.

#include "stdafx.h"

#include "iostream"

#include "locale.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL, "rus");

int a=10;

cout<<"Текущее значение переменной="<<a++<<"\nЗначение переменной после постфиксного инкремента="<<a;

getchar(); getchar();

return 0;

}

Результат

Простая форма операции присваивания - student2.ru

б) Инкремент префиксный

формат

++<имя переменной>

Действие: сначала увеличение значения переменной на 1, а затем используется ее новое значение

int _tmain(int argc, _TCHAR* argv[])

{

double x=123.456;

setlocale(LC_ALL, "rus");

int a=10;

cout<<"Зачение переменной="<<++a<<"\nЗначение переменной после префиксного инкремента="<<a;

}

Простая форма операции присваивания - student2.ru

в) Декремент постфиксный

формат

<имя переменной>--

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

г) Декремент префиксный

формат

<имя переменной>--

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

8. Поразрядные операции в С++

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

1. Сдвиг влево двоичного кода (умножение на 2)

формат операции

x<<n

где х - значение, код которого должен быть изменен

n – Количество разрядов, на который должен быть сдвинут код

Пример. Сдвиг влево двоичного кода числа 5 на два разряда.

int _tmain(int argc, _TCHAR* argv[])

{

unsigned int x=5, n=2;

x=x<<n;

cout<<x; //результат 20

cin.get();

return 0;

}

2. Сдвиг вправо двоичного кода (деление на 2)

формат операции

x>>n

где х - значение, код которого должен быть изменен

n – Количество разрядоd, на который должен быть сдвинут код

Пример. Сдвиг влево двоичного кода числа 20 на два разряда.

int _tmain(int argc, _TCHAR* argv[])

{

unsigned int x=20, n=2;

x=x>>n;

cout<<x; //результат 5

cin.get();

return 0;

}

3. Поразрядное сложение

Используется для установки в 1 заданного бита

Формат

X|Y

X и Y переменные одной разрядности

Таблица битового сложения

0|1=1

0|0=0

1|0=1

1|1=1

Пример установки в бит с номером 5 двоичного кода х значения 1.

Модель решения

Пусть х=1, то его двоичный код в формате одного байта 00000001

Чтобы установить пятый бит х в 1 к нему надо прибавить число с двоичным кодом 00100000 т.е. десятичное 32.

Представим решение в форме

Х : 00000001

|

32: 00100000

00100001 в десятичной системе это число 33

Реализация примера

int _tmain(int argc, _TCHAR* argv[])

{

unsigned char x=1;

x=x|32;

cout<<x; //результат 33

cin.get();

return 0;

}

4. Поразрядное умножение

Используется для обнуления заданного бита

Формат

X & Y

Таблица битового сложения

0&1=0

0&0=0

1&0=0

1&1=1

Пример установки в бит с номером 5 двоичного кода х значения 0.

Модель решения

X: 11111111

&

Y: 11011111

X&Y= 11011111

int _tmain(int argc, _TCHAR* argv[])

{

unsigned char x=255; // 11111111

unsigned char maska =0xEF; //239 =11101111

x=x& maska;

cout<<(int)x; //результат 239

cin.get();

return 0;

}

5. Исключающее ИЛИ (только один из операндов 1)

Используется для проверки соответствующих битов двух переменных, если они имеют разные значения, то результат 1, а если равны , то 0.

Формат

X ^ Y

Таблица битового сложения

0^ 1=1

0^ 0=0

1^ 0=1

1^ 1=0

Пример, проверить, в каких битах Х и У имеют равные хначения.

Модель решения

Z=X^Y

X
Y
Z

int _tmain(int argc, _TCHAR* argv[])

{

unsigned char x=255; // 11111111

unsigned char maska =0xEF; //239 =11101111

x=x& maska;

cout<<(int)x; //результат 239

cin.get();

return 0;

}

6. Инвертирование

Замена бита 0 на значение 1 и наоборот.

Применяется при проведении операций, требующих инвертирования разрядв

Формат: ~X

Пример. Создать обратный код целого числа.

Пусть Х=11011011, тогда Х=~Х. Результат: 00100100

int _tmain(int argc, _TCHAR* argv[])

{

unsigned char x=20, n=2;

x= ~x;

cout<<(int)x; //результат 235

cin.get();

return 0;

}

Пример. Инвертирование маски перед умножением. Установить пятый бит в 0

int _tmain(int argc, _TCHAR* argv[])

{

unsigned char x=255;

unsigned char maska =0x01; //1=00000001

x=x&(~ (maska<<4));

cout<<(int)x; //результат 239

cin.get();

return 0;

}

Самостоятельно.

1. Х=5. Установить 7 бит в 1.

2. Х=255. Установить 5 и 3 биты в 0.

3. Инвертировать 5 бит переменной х.

4. Вывести все биты значения переменной Х. Размер переменной неизвестен.

Наши рекомендации