基数で割ったときの余りを逆から読むという、基本に忠実なやり方。
#include <stdio.h>
void dec2bin(unsigned int val, char *str)
{
int count, i;
char buf[33];
for( count = 0; val != 0; val /=2, count++)
if(val%2)
buf[count] = '1';
else
buf[count] = '0';
str[count] = '\0';
for(i = 0; count>0; i++, count--)
str[i] = buf[count-1];
}
int main(int argc, char** argv)
{
int val;
char str[33];
printf("Please input integer>");
scanf("%d", &val);
dec2bin( (unsigned int)val, str);
printf("%s\n", str);
}