МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Перетворення типів даних .Деякі оператори залежно від своїх операндів можуть викликати перетворення їх значень з одного типу в іншій. Об'єкти короткого цілого, перелічувального, символьного типу - всі із знаком або без можуть використовуватися у виразі там, де можливо вживання цілого. Якщо тип int дозволяє "охопити" всі значення початкового типу операнда, то операнд приводиться до типу int, в противному випадку він приводиться до unsigned int. Ця процедура називається цілочисельним підвищенням (Integral promotion - цілочисельне підвищення - іноді також переводять як "інтегральне просування”). Будь-яке ціле приводиться до деякого заданого беззнакового типу шляхом пошуку конгруентного (тобто має те ж двійкове представлення) якнайменшого додатнього значення і отримання залишку від ділення його на nmax + 1, де nmax - найбільше число в цьому беззнаковому типі. Для двійкового представлення в додатковому коді це означає або викидання зайвих старших розрядів, якщо беззнаковий тип "вже" початкового типу, або заповнення бракуючих старших розрядів нулями (для значення без знака) чи значенням знака (для значень із знаком), якщо беззнаковий тип "ширше" початкового. В результаті приведення будь-якого цілого до знакового типу перетворюване значення не зміняється, якщо воно представляється в цьому новому типі. При перетворенні з типу з плаваючою крапкою в цілочисельний дробова частина значення відкидається; якщо отримане при цьому значення не можна представити в заданому цілочисельному типі, то результат не визначений. Зокрема, не визначений результат перетворення від’мних значень з плаваючою крапкою в беззнакові цілі. Якщо значення перетвориться з цілого у величину з плаваючою крапкою і вона знаходиться в допустимому діапазоні, але представляється в новому типі неточно, то результатом буде одне з двох значень нового типу, які є найближчими до початкового. Якщо результат виходить за межі діапазону допустимих значень, поведінка програми не визначена. При перетворенні з типу з плаваючою крапкою меншої точності в тип з плаваючою крапкою більшої точності значення не змінюється. Якщо, навпаки, перехід здійснюється від більшої точності до меншої і значення залишається в допустимих межах нового типу, то результатом буде одне з двох найближчих значень нового типу. Якщо результат виходить за межі діапазону допустимих значень, поведінка програми не визначена. В багатьох операціях перетворення типів операндів і визначення типу результату здійснюються за одними і тими ж правилами. Вони полягають в тому, що операнди приводяться до деякого загального типа, який також є і типом результату. Ці правила називаються звичайними арифметичними перетвореннями. · Якщо який-небудь з операндів має тип long double, то інший приводиться до long double. · Якщо який-небудь з операндів має тип double, то інший приводиться до double. · Якщо який-небудь з операндів має тип float, то інший приводиться до float. · Якщо один з операндів має тип unsigned long int, то і інший перетвориться в unsigned long int. · Якщо один з операндів належить типу long int, а інший - unsigned int, то результат залежить від того, чи покриває long int всі значення unsigned int, і якщо це так, то unsigned int приводиться до long int; якщо ні то обидва операнди перетворяться в unsigned long int. · Якщо один з операндів має тип long int, то інший приводиться до long int. · Якщо один з операндів - unsigned int, то інший приводиться до unsigned int. Отже, 1)арифметика з операндами з плаваючою крапкою тепер може проводитися з одинарною точністю, а не тільки з подвійною; 2)більш короткий беззнаковий тип в комбінації з більш довгим знаковим типом не поширює властивість беззнаковости на тип результату. Читайте також:
|
||||||||
|