Impressão não assinada longa longa int Tipo de valor retorna resultados estranhos
Eu tenho um problema ao usar oprintf
função para imprimir valores do tipounsigned long long int
Eu não tenho ideia do que está errado. Eu estou usando Dev-Cpp 4.9.9.2 e Visual Studio 2010 Professional (eu sei que não é compilador C, mas de qualquer maneira, queria tentar) no Windows 7 Professional de 64 bits. Para exibir, eu usei%llu
modificador (de acordo comComo você imprime um long long int não assinado (o especificador de formato para unsigned long long int)?) mas eu também tentei I64d sem efeito ...
Em primeiro lugar, queria apenas imprimir o valor mínimo e máximo deunsigned long long int
(usandoULONG_MAX
delimits.h
)
printf("unsigned long long int: \n%llu to %llu \n\n", 0, ULONG_MAX);
Retorna:
não longo long int: 18446744069414584320 a 1580552164021(Dev-Cpp)
não muito longa longa int: 18446744069414584320 a 0(Estúdio visual)
Então eu tentei usarprintf
imprimir dois zeros
printf("unsigned long long int: \n%llu to %llu \n\n", 0, 0);
Retorna:
longa sem assinatura int longo: 0 a 1580552164021(Dev-Cpp)
longa sem assinatura int longo: 0 a 0(Estúdio visual)
Também tentei doisULONG_MAX
valores
printf("unsigned long long int: \n%llu to %llu \n\n", ULONG_MAX, ULONG_MAX);
Retorna:
não muito longa longa int: 18446744073709551615 to 1580552164021(Dev-Cpp)
não muito longa longa int: 18446744073709551615 a 0(Estúdio visual)
Por que se comporta assim? Você poderia me explicar?