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