ExpertiDict

C · Intermediário · Português · Técnico

tipo sem sinal

/ˈtʃi.pu sẽj siˈnaw/substantivo

Tipo inteiro declarado com unsigned, que só representa valores não negativos e usa todos os bits para a magnitude. Seu overflow é definido: o valor dá a volta módulo 2^N.

Onde usar

size_t e índices de array são unsigned. O clássico for (unsigned i = n; i >= 0; i--) nunca termina, porque i nunca fica negativo.

Em código

unsigned u = 0;
u--;
printf("%u\n", u); // 32 bits: 4294967295
int s = -1;
puts(s < 1u ? "menor" : "maior"); // maior

Exemplos

Esse laço nunca para porque o índice é um tipo sem sinal.

Comparar int com tipo sem sinal dá resultado surpreendente com valores negativos.

Cuidado

Misturar signed e unsigned em comparações: o valor com sinal é convertido para unsigned, e -1 vira um número enorme.

Sinônimos

unsigned

Antônimos

tipo com sinal

Veja também

Todos os termos de C