Особливості роботи з типами презентация

Слайд 1Особливості роботи з типами
Особливості роботи з цілими типами
Розширення цілих типів
Особливості роботи

з дробовими типами
Розширення дрібних типів
Приведення примітивних типів даних

Слайд 2Особливості роботи з цілими типами
Аргумент дорівнює найменшому можливому значенню примітивного типу
int

x=-2147483648;
int y=-x;
Результат y==x и x == -x – true
Переповнення
int x= 300000;
print(x*x);
Результат -194313216

Слайд 3Розширення типів
Вираз
int i = 300000; print (i * i); // Множення

з точністю 32 біта
long m = i; print (m * m); // Множення з точністю 64 біта
print (1 / (m-i)); // Спробуємо отримати різницю значень int та long
Результат
-194313216
90000000000
Помилка ділення на нуль
double x = 1/2; - Помилковий результат
Кількість мілісекунд у місяці
print (1000 * 60 * 60 * 24 * 30) - результат -1702967296
Помилка компіляції
byte b = 5;
byte c = -b;

Слайд 4Правила розширення цілочисельних типів
Якщо хоча б один аргумент операції має тип

long, то всі аргументи приводяться до цього типу і результат операції також буде типу long.
Обчислення буде вироблено з точністю в 64 біта, а більш старші біти, якщо з'являються в результаті, відкидаються.
Якщо ж аргументів типу long немає, то обчислення проводиться з точністю в 32 біти, і всі аргументи перетворяться в int (byte, short, char також). Результат теж int. Всі біти старше 32-го ігноруються.
Немає способу дізнатися, чи відбулося переповнення.

Слайд 5Особливості роботи з дробовими типами
Дробові обчислення взагалі не породжують ніяких помилок!
Спеціальні

значення дробового типу:
позитивна і негативна нескінченності (positive / negative infinity);
1f / 0f - позитивна нескінченність, тип float
-1d / 0d - негативна нескінченність, тип double
значення "не число", Not-a-Number, скорочено NaN;
0.0 / 0.0 - ділення нуль на нуль
(1.0 / 0.0) * 0.0 - множення нескінченності на нуль
позитивний і негативний нулі.
0.0
+0.0
-0.0
0.0 == - 0.0 - true
0.0> -0.0 - false

Слайд 6Правила розширення дробових типів
Якщо хоча б один аргумент має тип double,

то значення всіх аргументів приводяться до цього типу і результат операції також матиме тип double. Обчислення буде здійснене з точністю в 64 біта.
Якщо ж аргументів типу double немає, а хоча б один аргумент має тип float, то всі аргументи приводяться до float, обчислення проводиться з точністю в 32 біта і результат має тип float.
Якщо хоча б один з аргументів має значення NaN, то і результатом операції буде NaN.

Слайд 7Приведення примітивних типів даних
Приведення типів дозволяє конвертувати значення примітивів з одного

типу в інший.
Приведення типів (casting) може бути неявним (implicit) і явним (explicit).

Слайд 8Неявне приведення типів
При неявному приведенні типів немає необхідності писати код для

кастингу: конвертування відбувається автоматично.
Зазвичай неявне приведення типів відбувається при розширенні діапазону значень.
Наприклад, присвоювання значення змінної з меншим діапазоном значень, наприклад byte в контейнер з більш широким діапазоном, наприклад int.

Слайд 9Явне приведення типів
Якщо значення одного типу не може бути побічно присвоєно

змінної іншого типу, використовується оператор явного перетворення типів (type casting):
(бажаний тип) наявний тип
int x = (int) 3957.229; // Legal cast System.out.println ("int x =" + x); Результат: int x = 3957

Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика