6.3.1.1 Состояния
Ранг целочисленного типа со знаком должен быть больше ранга целочисленного типа со знаком с меньшей точностью.
Ранг long long int должен быть больше, чем ранг long int, который должен быть больше, чем ранг int, который должен быть больше, чем ранг short int, который должен быть больше, чем ранг подписанного символа .
Так, может быть, это не так
signed char has 32 bits (1 padding, 1 sign, 30 precision)
unsigned char has 32 bits (0 padding, 0 sign, 32 precision)
signed int has 32 bits (1 padding, 1 sign, 30 precision)
unsigned int has 32 bits (2 padding, 0 sign, 30 precision)