シフト演算を使う場合 その1。頭に0がたくさんつくのは手抜き。
#include <stdio.h> void dec2bin(unsigned int val, char *str) { const unsigned int mask = 0x80000000; int i; for( i = 0; i < 32; i++) str[i] = val & (mask >> i)?'1':'0'; str[32] = '\0'; } 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); }