Операции над значениями простых типов данных

Основные теоретические сведения

Существуют 6 основных битовых операторов.

& Поразрядное И

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

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

‹‹ Сдвиг влево

›› Сдвиг вправо

~ Одноместное поразрядное дополнение до единицы

Таблица операций и их приоритетность
Приоритет Знак операции Смысл операции Применение Направление выполнения
    () Скобки В выражении (x+y)/2 Слева направо
. Точка В имени a.x
[] Кв.скобки Для индексации элементов мас- сива a[I]
-> Указатель Обращение к полю структуры через указатель l>next
    Унарные * Косвенная адресация Для определения указателя и разыменование указателя int *ptr; Справа налево  
& Получение адреса int x=5; ptr=&x;
! НЕ логическое (a!=b)
~ (инверсия) Дополнение до 1 для поразрядных операций unsigned char A=0xE; ~ A = 0001  
++ инкримент .i++; ++I;
-- декримент .i--; --I;
+ Знак числа +5; +a
- Знак числа -5.12; -b
(тип) имя переменной Приведение типа переменной int x; long l; l=(long) x; или .l=long(x);
Sizeof(тип) Sizeof(перем.) Размер ячейки памяти sizeof(int)
3 мультипликативные * / % Умножить Деление Остаток при делении целого на целое 2*3; 5/2=2; 5.2/2=2.6;1/2=0 5%2=1 Слева направо
аддитивные + - Сложить Вычесть 2+3 2-3 Слева направо
поразрядные <<   >> Сдвиг влево двоичного кода Сдвиг вправо   int x=7; x=x<<2;// x=111<<2=100 X=x>>1; 100>>1=010 Слева направо
отношения <,>,>=,<=   A<=B Слева направо
сравнения == != Равно НЕ равно A= =B; A!=B Слева направо
& Поразрядное И 111 & 100 =100 Слева направо
| Поразрядное ИЛИ 111 | 100 =111 Слева направо
^ Исключающее ИЛИ для поразрядных операций .unsigned int x=0xF,a=1,A; A=x^a; 1111 ^ 0001=1110 Слева направо
&& Логическое И (a>0 && a<1) Слева направо
| | Логическое ИЛИ (a<0||a>1) Слева направо
? : Условное выражение Max = (10>=12)? 10 : 12; т.е. max = 12 Слева направо
Операции присваивания: =; *=; +=; и т.д.   A=2; a*=2; b=c=a; Слева направо
, Запятая. Последовательное выполнение действий. Результат операции – результат самого левого выражения C=A=2,b=7; //c=7 Слева направо

// L1_Z2.cpp: определяет точку входа для консольного приложения.

//

#include "stdafx.h"

#include "iostream"

#include "locale.h"

using namespace std;

int main()

{

setlocale(LC_ALL, "rus");

int a, b;

cout << "Введите два целых числа: ";

cin >> a >> b;

cout << " a + b = " << a + b <<

"\n a * b = " << a * b <<

"\n a - b = " << a - b <<

"\n b - a = " << b - a <<

"\n a / b = " << a / b <<

"\n a % b = " << a % b <<

"\n b % a = " << b % a <<

"\n b / a = " << b / a <<

"\n a / 2 = " << a / 2 <<

"\n a / 2.0 = " << a / 2.0;

double c;

float d;

cout << "\nВведите два вещественных числа: ";

cin >> c >> d;

cout << " c + d = " << c + d <<

"\n c * d = " << c * d <<

"\n c - d = " << c - d <<

"\n d - c = " << c - d <<

"\n c / d = " << c / d <<

"\n d / c = " << d / c <<

"\n c / a = " << c / a;

unsigned char ua = '255', ub = '10';

cout << "\nВведите значения в две переменные: ";

cin >> ua >> ub;

cout << "!ua = " << !ua << "\n!ub = " << !ub

<< "\n~ua = " << ~ua << "\n~ub = " << ~ub

<< "\nua & ub = " << (ua & ub)

<< "\nua | ub = " << (ua | ub)

<< "\nua << 2 = " << (ua << 2)

<< "\nub << 3 = " << (ub << 3)

<< "\nua >> 2 = " << (ua >> 2)

<< "\nub >> 3 = " << (ub >> 3);

char ch = 'A';

cout << "\nКод символа = " << int(ch) << endl;

printf("Код символа = %d\n", ch);

cout << ch + 1 << endl;

system("PAUSE");

return 0;

}

Операции над значениями простых типов данных - student2.ru

Операции над значениями простых типов данных - student2.ru

Выводы

В процессе выполнения лабораторной работе я получил знания как выводить и вводить данные, узнал какие типы данных существуют.

На выполнения этой лабораторной работы я потратил 12ч

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

Я теперь научился...

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