• 締切済み

プログラム

下のようなプログラムを作ったのですが、10進2進変換をj=n>>2&1の部分にあるようなビットシフトではなく、 for(i=1;i<8;i++){printf("bit[%d]=%d\n",i,n%2);n=n/2;}に変えて剰余計算で行うプログラムにしたいのですが、分かる方がいましたら教えて下さい。お願いします。 #include <stdio.h> int main(void) { int i,j,n; i=2; printf("数字を入力="); scanf("%d",&n); printf("Dec=%d\n",n); printf("heX=0x%x\n",n); j=n>>2&1; printf("bit[%d]=%d\n",i,j); return(0); }

みんなの回答

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

#include <stdio.h> void dec2bin(int n) { if (n > 1) { dec2bin(n / 2); } printf("%d", n % 2); } int main(void) { int n; for (n = 0; n <= 16; ++n) { dec2bin(n); putchar('\n'); } return 0; }