• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Cypher

[C] Dúvida: Diferença entre Signed e Unsigned (Resolvido)

5 mensagens neste tópico

Alguem me pode esplicar de uma maneira simples e clara que é o k se pretende :D para a diferença do

%d e %u

nao percebo essa história do com sinal e sem sinal!!!!1 :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

%d para inteiros

%u não me lembro bem mas é para tipos de dados "unsigned"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um inteiro permite-te guardar 32 bits de dados (na realidade varia com os processadores (e com a linguagem, mas estamos a falar de C) mas isto é o geral)

Nestes 32 bits, metade são positivos, metade são negativos.

Logo, o maior número que podes guardar num int é 2^31 (os outros 2^31 estão reservados para números positivos) (pensa como 31 bits que permitem guardar um número, + 1 que te permite dizer se é positivo ou negativo (1 ou 0))

Se declarares o número como unsigned, ele considera todos os 32 bits para positivos. Logo, o maior número que podes guardar é 2^32.

%u = %ud = unsigned int

%d = int

Para que fique registado, o maior número que podes guardar em C é o unsigned long long, que corresponde a %ulld e são 64 bits.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora