Правила преобразования знаковых целых типов приведены в таблице 4.2. Предполагается, что тип char по умолчанию является знаковым. Если во время компиляции используется опция, которая изменяет умолчание для типа char со знакового на беззнаковый, то для него выполняется преобразование как для типа unsigned char (см. таблицу 4.3).
Таблица 4.2.
От типа | К типу | Метод |
char | short | дополнение знаком |
char | long | дополнение знаком |
char | unsigned char | сохранение битового представления; |
char | unsigned short | старший бит теряет функцию знакового бита дополнение знаком до short; преобразование short в unsigned short |
char | unsigned long | дополнение знаком до long; преобразование long в unsigned long |
char | float | дополнение знаком до long; преобразование long к float |
char | double | дополнение знаком до long; преобразование long к double |
short | char | сохранение младшего байта |
short | long | дополнение знаком |
short | unsigned char | сохранение младшего байта |
short | unsigned short | сохранение битового представления; старший бит теряет функцию знакового бита |
short | unsigned long | дополнение знаком до long; преобразование long в unsigned long |
short | float | дополнение знаком до long; преобразование long к float |
short | double | дополнение знаком до long; преобразование long к double |
long | char | сохранение младшего байта |
long | short | сохранение младшего слова |
long | unsigned char | сохранение младшего байта |
×