Jump to content

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


Cypher

Recommended Posts

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.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.