Студопедия

Главная страница Случайная страница

Разделы сайта

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






Арифметические преобразования при выполнении арифметических операций вида X op Y






1. если есть операнд типа short или signed char, то он преобразуется к int; если есть операнд типа char, unsigned char или unsigned short, и все значения этого типа могут быть представлены как int, то он преобразуется к int; иначе - к unsigned int. Это преобразование называется «целочисленное расширение» (promoting).

2. если после выполнения п.1 операнды имеют различные типы, то осуществляется их приведение к общему типу. Общим для двух типов (кроме случая «unsigned int - long») является тот, который расположен позже в последовательности int, unsigned int, long, unsigned long, float, double, long double.

Если операнды имеют типы unsigned int и long, и все значения типа unsigned int могут быть представлены как long, то общим типом является long; иначе - unsigned long. Это преобразование называют «согласование типов» (balansing).

3. после этого выполняется арифметическая операция; тип результата - это тип, к которому были приведены оба операнда.

 

 

Арифметические преобразования при выполнении присваивания и явного приведения

 

M-битового представления величины X к N-битовому представлению

преобразование N < M N == M N> M

-------------------------------------------------------------------------------------------------------

знаковое целое отсечение значение значение

к старших сохраняется сохраняется

знаковому целому N-M бит

-------------------------------------------------------------------------------------------------------------

беззнаковое целое зависит от если x ³ 0, знач.сохр. значение

к реализации иначе зависит от сохраняется

знаковому целому реализации

-------------------------------------------------------------------------------------------------------------

вещественное если |x|< 2N-1, то если |x|< 2N-1, то если |x|< 2N-1, то

к trunc(x) trunc(x) trunc(x)

знаковому целому иначе зависит иначе зависит иначе зависит

от реализации от реализации от реализации

------------------------------------------------------------------------------------------------------------

знаковое целое если x³ 0, то x%2N если x³ 0 если x³ 0

к иначе зависит знач. сохр. знач. сохр.

беззнаковому целому от реализации иначе x+2N иначе x+2N

-------------------------------------------------------------------------------------------------------------

беззнаковое целое значение значение

к x%2N сохраняется сохраняется

беззнаковому целому

------------------------------------------------------------------------------------------------------------

вещественное если 0£ x< 2N если 0£ x< 2N если 0£ x< 2N

к trunc(x) trunc(x) trunc(x)

беззнаковому иначе зависит иначе зависит иначе зависит

целому от реализации от реализации от реализации

------------------------------------------------------------------------------------------------------------

знаковое целое сохр. знак, значение значение

к сохр. старшие сохраняется сохраняется

вещественному N-1 бит

------------------------------------------------------------------------------------------------------------

беззнаковое целое знак +, знак +, значение

к сохр. старшие сохр. старшие сохраняется

вещественному N-1 бит N-1 бит

------------------------------------------------------------------------------------------------------------

вещественное сохр. старшие значение значение

к N-1 бит сохраняется сохраняется

вещественному

 

10.2.5 Неявное приведение типов в операторе присваивания X = Y

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.