4bitずつテーブルで。
#include <stdio.h>
static const char d2btbl[][5]={
"0000","0001","0010","0011",
"0100","0101","0110","0111",
"1000","1001","1010","1011",
"1100","1101","1110","1111",
};
inline void dec2bin16(unsigned int n){
/* [aaaa][bbbb][cccc][dddd]*/
printf(d2btbl[(n >> 12) ]); /* aaaa */
printf(d2btbl[(n >> 8) & 0xf]); /* bbbb */
printf(d2btbl[(n >> 4) & 0xf]); /* cccc */
printf(d2btbl[ n & 0xf]); /* dddd */
}
inline void dec2bin32(unsigned int n){
dec2bin16(n >> 16); /* 上位16bit */
dec2bin16(n & 0xffff); /* 下位16bit */
}
int main(){
int n;
scanf("%d",&n);
dec2bin32(n);
}
ん?64bitなんか知らね!!