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


         

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


Примечание. В СП MSC и СП ТС тип int

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

производится как для типа long.

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

Беззнаковое целое значение преобразуется к короткому беззнаковому целому значению или короткому знаковому целому значению путем усечения старших битов. Беззнаковое целое значение преобразуется к длинному беззнаковому целому значению или длинному знаковому целому значению путем дополнения нулями слева. Беззнаковое целое значение преобразуется к значению с плавающей точкой путем преобразования к типу long, а затем преобразования значения типа long к значению с плавающей точкой.

Если беззнаковое целое значение преобразуется к знаковому целому значению того же размера, то битовое представление не меняется. Однако, если старший (знаковый) бит был установлен в единицу, представляемое значение изменится.

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

Таблица 4.3.

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

































































































































































































































От типа



К типу



Метод



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)

<

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