long | unsigned short | сохранение младшего слова |
long | unsigned long | сохранение битового представления; старший бит теряет функцию знакового бита |
long | float | представляется как float; возможна некоторая потеря точности |
long | double | представляется как double; возможна некоторая потеря точности |
Примечание. В СП 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 | сохранение младшего байта |