Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Преобразование типов операндов при выполнении операций

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

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

 

 

 

 


Больше                                                              Меньше

Исключение

Особая ситуация: операнды типов uint и int. Эти типы имеют одинаковый по величине диапазон значений, но смещенный на числовой оси. В этом случае оба операнда преобразуются к типу long.

Тип результата операции будет совпадает с типом операндов после преобразования.

Преобразования выполняются при выполнении операции и не влияют на хранение значений операндов в памяти.

Арифметические операции

Унарные

­ Изменение знака

­ Унарный +

­ Инкремент

­ Декремент

Изменение знака

int a=10, b=20, c, d;

c =- a; // с=-10

d =+ b; // d=20

Инкремент предназначен для увеличения значения переменной на единицу, а декремент – для уменьшения значения переменной на единицу.

inta =10;

или
а++; // а=а+1; а=11

++а; // а=а+1; а=11

inta =10;

или
а--; // а=а-1; а=9

--а; // а=а-1; а=9

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

int a=10, b=10, x, y;

x=a++; //. a=11 →x=10

y =++ b; // b=11 → y=11

Бинарныеоперации

 

 

 


уменьшение

приоритета

 

inta, b;

double c;

a=10/4; //a=2

c=10/4.; //c=2.5

b=10./4; //ошибка!!! (10./4.=2.5)

при присваивании возможна

потеря информации!!!

 

inta;

а=10%3; //а=1

а=-10%3; //а=-1

а=10%-3; //а=1

а=-10%-3; //а=-1

Операция явного преобразования типа

(Тип приемника) операнд

 

преобразование к типу приемника

inta;

double b;

a=(int)3.5;          //a=3

b =(int)3.5+5.5;       //b=3+5.5=8.5

Операция явного преобразования типа

 

 


boola, b, c;

a= 10>5;    // true

b= ’B’>’A’;  // true

c= 65==’A’; // true

Логические операции

 

 

 


boola;

a =!(10>5&& 3==8);    //true

Операции сдвига

 

 


Для знаковых типов – арифметический сдвиг, для беззнаковых – логический.

ushort a=0x8005, b;

b=(ushort)(a>>1);

0 1000 0000 0000 010 1

short a=-0x1005, b;

b=(short)(a>>1);

1 1110 1111 1111 110 1

 


пишем знак числа на освободившееся место

Битовые операции

 

 


bytea=0x1F, b=0x3A, d;

d =(byte)(~(a ^ b));

Операции выполняются поразрядно:

         0001 1111

         0011 1010

         0010 0101 a ^ b

         1101 1010 ~(a ^ b)

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

Предназначена для реализации простейшего варианта ветвления.

Операнд1? Операнд2:Операнд3

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

 

 

 


:

int a, b, c, min;

a=10; b=5; c=8;

min = a;

min = b < min? b:mn;

min = c < min? c:mn;

 



<== предыдущая лекция | следующая лекция ==>
Операции со стандартными простыми типами данных | Имидж в политическом маркетинге
Поделиться с друзьями:


Дата добавления: 2018-10-18; Мы поможем в написании ваших работ!; просмотров: 288 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Наука — это организованные знания, мудрость — это организованная жизнь. © Иммануил Кант
==> читать все изречения...

2378 - | 2165 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.