十进制转二进制算法问题(出现了一个奇怪的数)
#include <stdio.h>void main()
{
int b,i,c=0,a[30];
scanf("%d",&b);
while(b!=0)
{
i=b%2;
a[c]=i;
c++;
b=b/2;
}
for(;c>=0;c--)
{
printf("%d\n",a[c]);
}
printf("\n");
}
为什么我输入10但他输出:
-858993460
1
0
1
0
我知道下面的1010是10的二进制,但上面的-858993460怎么来的??