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