IvanR 0 Denunciar post Postado Outubro 17, 2008 preciso retornar um numero inteiro gigante, mas não sei como faze-lo, como retorna um numero negativo, parece q estoura a quantidade máxima de bytes do mesmo. por exemplo, preciso que ele retorne 3717561852, mas sempre retorna -577405444. Os watch da variavel mostram o primeiro valor, mas o retorno me transforma pra este outro, oq fazer ? #include <stdio.h> unsigned int s(unsigned int num) { unsigned int numero = num; return numero; } int main() { unsigned int popo; popo = s(3717561852); printf("%d",popo); system("pause"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 17, 2008 unsigned int s(unsigned int num) { unsigned int numero = num; return numero; } Qual é a finalidade disso? Use unsigned long. Compartilhar este post Link para o post Compartilhar em outros sites
IvanR 0 Denunciar post Postado Outubro 17, 2008 Isso era só um exemplo hipotético de onde tava o erro e oq deveria fazer, pra nuam colar um códiog gigante aki, mas já descobri, o problema era com o printf %d, que tenho q botar o %u Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Outubro 19, 2008 uma coisa, %u só se usa pra inteiros sem sinal né? Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 19, 2008 Depende do que você quer dizer com 'usa'. %u altera a interpretação dos bits. O bit mais significativo deixa de ser o bit de sinal e tudo fica na potência de dois positivo. Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Outubro 19, 2008 era isso msm :D Compartilhar este post Link para o post Compartilhar em outros sites