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なんか知らね!!