Conversão entre Tipos Inteiros

C converte tipos inteiros implicitamente em muitas situações. Os tipos inteiros estreitos, como char e short, são convertidos para int sempre que usados em operações aritméticas. A atribuição de um novo valor a uma variável inteira (ou outro lvalue) converte o valor para o tipo da variável.

Você também pode converter explicitamente um tipo inteiro para outro usando um operador de cast. Veja .

O processo de conversão para um tipo mais largo é direto: o valor permanece inalterado. A única exceção ocorre ao converter um valor negativo (obviamente em um tipo com sinal) para um tipo sem sinal mais largo. Nesse caso, o resultado é um valor positivo com os mesmos bits (veja ).

A conversão para um tipo mais estreito, também chamada de truncamento, envolve descartar alguns bits do valor. Isso não é considerado estouro (veja Estouro de Inteiros), pois a perda de bits significativos é uma consequência normal do truncamento. O mesmo se aplica à conversão entre tipos com e sem sinal da mesma largura.

Mais informações sobre conversões em atribuições estão em . Para conversões em operações aritméticas, veja .

Atualizado