10進数の入力に対して、8進数、16進数、2進数で出力

#include <stdio.h>

int main(void)
{
  int bit,decnum,flag=1;

  fprintf(stdout,"input number > ");
  fscanf(stdin,"%d",&decnum);
  fprintf(stdout,"oct = %o\nhex = %x\n",decnum,decnum);

  for(bit=32;bit>=1;bit--){
    if( decnum & ( 1<<(bit-1) ) ) fprintf(stdout,"1");
    else fprintf(stdout,"0");

    if( (flag % 4) == 0 ) fprintf(stdout," ");

    flag++;
  }

  fprintf(stdout,"\n");

  return 0;

}

実行してみる

$ ./a.out
input number > 255
oct = 377
hex = ff
0000 0000 0000 0000 0000 0000 1111 1111