Студопедия

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

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

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






Преобразование беззнаковых целых типов






От типа К типу Метод
unsigned char char сохранение битового представления; старший бит становится знаковым
unsigned char short дополнение нулевыми битами
unsigned char long дополнение нулевыми битами
unsigned char unsigned short дополнение нулевыми битами
unsigned char unsigned long дополнение нулевыми битами
unsigned char float дополнение нулевыми битами до long; преобразование long к float
unsigned char double дополнение нулевыми битами до long; преобразование long к double
unsigned short char сохранение младшего байта
unsigned short short сохранение битового представления; старший бит становится знаковым
unsigned short long дополнение нулевыми битами
unsigned short unsigned char сохранение младшего байта
unsigned short unsigned long дополнение нулевыми битами
unsigned short float дополнение нулевыми битами до long; преобразование long к float
unsigned short double дополнение нулевыми битами до long; преобразование long к double
unsigned long char сохранение младшего байта
unsigned long short сохранение младшего слова
unsigned long long сохранение битового представления; старший бит становится знаковым
unsigned long unsigned char сохранение младшего байта
unsigned long unsigned short сохранение младшего слова
unsigned long float преобразование к long; преобразование long к float
unsigned long double преобразование к long; преобразование long к double (в версии 5 СП MSC это преобразование производится напрямую, без промежуточного типа long)

Примечание. В СП MSC и СП ТС тип unsigned int эквивалентен типу unsigned short и преобразование для типа unsigned int производится как для типа unsigned short. В некоторых реализациях языка Си тип unsigned int эквивалентен типу unsigned long и преобразование для типа int производится как для типа unsigned long.

Преобразование плавающих типов Значения типа float преобразуются к типу double без потери точности. Значения типа double при преобразовании к типу float представляются с некоторой потерей точности. Однако если порядок значения типа double слишком велик для представления экспонентой значения типа float, то происходит потеря значимости, о чем сообщается во время выполнения.

Значения с плавающей точкой преобразуются к целым типам в два приема: сначала производится преобразование к типу long, а затем преобразование этого значения типа long к требуемому типу. Дробная часть плавающего значения отбрасывается при преобразовании к long; если полученное значение слишком велико для типа long, то результат преобразования не определен. Правила преобразования плавающих типов приведены в таблице 4.4.

Таблица 4.4.

 

От типа К типу Метод
float char преобразование к long; преобразование long к char
float short преобразование к long; преобразование long к short
float long усечение дробной части; результат не определен, если он слишком велик для представления типом long
float unsigned short преобразование к long; преобразование long к unsigned short
float unsigned long преобразование к long; преобразование long к unsigned long
float double дополнение мантиссы нулевыми битами справа
double char преобразование к float; преобразование float к char
double short преобразование к float; преобразование float к short
double long усечение дробной части; результат не определен, если он слишком велик для представления типом long
double unsigned short преобразование к long; преобразование long к unsigned short
double unsigned long преобразование к long; преобразование long к unsigned long
double float усечение младших битов мантиссы; возможна потеря точности; если значение слишком велико для представления типом float, то результат преобразования не определен

 

 






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