Ir ao conteúdo

Dúvida em "unsigned"


MHK

Posts recomendados

Postado

Pessoal, estou com um dúvida conceitual simples:

O que significa mesmo variáveis declaradas como unsigned?:unsure:

Postado

unsigned = sem sinal

Exemplo:

int x;

Se no seu compilador um int tiver 2 bytes (16 bits), então você consegue representar números entre -32767 e 32767.

1000 0000 0000 0000: alí onde tem um '1', tá sendo usado pra representar o sinal de positivo ou negativo (0 positivo, 1 negativo) do número, então sobram apenas 15 bits pra representar o número.

unsigned int x;

Agora você tá dizendo pro compilador que o x irá representar apenas números positivos... então em vez de 15 bits, você usa os 16 mesmo, podendo representar números de 0 até 65535.

Então resumindo tudo... o unsigned serve apenas pra você conservar memória. Se no seu programa você quisesse guardar o número 40.000, você teria que usar um 'long int', que ocupa mais memória... Mas caso você soubesse que seu programa só lidaria com números positivos, então você poderia aproveitar um int normal utilizando ele como unsigned.

(ps: usei os 16 bits apenas como exemplo... hoje em dia os ints usam mais de 2 bytes)

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...