io farei così un programma per convertire i decimali in numeri binari, mi sembra molto piu facile. (chiaramente il numero binario esce al contrario nel mio esempio, ma poi girarlo è facile )

codice:
#include <stdio.h>
#include <windows.h>

int main (void){

	char bin[200];
	int dec = 425, x;
	for(x=0; dec>=1 ; x++){
		int resto = dec % 2;
		printf("%d %d\n",dec,resto);
		dec = dec /2;
		if(resto == 0) bin[x] = '0';
		if(resto == 1) bin[x] = '1';

	}
	bin[x]='\0';
printf("%s\n",bin);
system("pause");

}