我编写了一个代码,用于将基于使用输入的大数转换为十六进制数。但是,当打印结果时,数字的唯一部分被转换为十六进制,并且数组中还有其他随机值。
例如:十进制 = 1234567891012 ---- 十六进制 = 00 00 00 02 00 00 00 65 00 6b 42 48 71 fb 08 44
最后四个值 ( 71 FB 08 44
) 是正确的十六进制值,但其他值不正确
我正在使用 uint8_t buf[];
代码:
int main()
{
uint8_t buf[] = {0};
long int i,a;
printf("Enter Number: ");
scanf("%d", &buf);
printf("\n");
printf("Input #: ");
/* put a test vector */
for (i = 15; i >= 0; i--)
{
printf("%02x ", buf[i]);
}
printf("\n\n");
printf("\n\n");
printf("%d\n",sizeof(buf));
system("pause");
return 0;
}