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 Conversão de Tipo Explícita.

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 Inteiros em Profundidade).

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 Conversões de Tipo em Atribuições. Para conversões em operações aritméticas, veja Promoção de Argumentos.

Atualizado

Isto foi útil?