Справочник языка Cи


         

В некоторых реализациях языка Си


Примечание. В СП 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, то результат преобразования не определен

<

Содержание  Назад  Вперед