fork download
  1. /*
  2. 課題2. キーボードから10 進整数を入力し,その数を2 進数に変換した値を表示するプログラムを作成
  3. せよ.ただし,変換後の2 進数は正しい順序で表示すること(入力が10 ならば,1010 と表示).
  4.  
  5. 課題3.課題1,2 のプログラムを作成するにあたり,どのように考えてプログラムを実現したのかをレ
  6. ポートにまとめよ(プログラムの説明ではなく,問題を解くための考え方を説明する).
  7. ※プログラムが完成していなくても,自分の考えた解き方をレポートにまとめること
  8.  
  9. 上位のビットから出力する必要があるので入力された値の最上位のビットまで1を左シフトします。
  10. ビットが立っているか否かによって1または0を出力します。左シフトした値を右シフトします。左シフトした
  11. 値が1になるまで出力と右シフトの処理を繰り返すようにしました。
  12. */
  13.  
  14. #include <stdio.h>
  15.  
  16. int main(void) {
  17. int d;
  18. int i;
  19.  
  20. scanf("%d", &d);
  21.  
  22. i = 1;
  23. while (i <= d - i) {
  24. i <<= 1;
  25. }
  26.  
  27. while (0 < i) {
  28. if ((d & i) == i) {
  29. printf("1");
  30. } else {
  31. printf("0");
  32. }
  33. i >>= 1;
  34. }
  35. printf("\n");
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0.01s 1680KB
stdin
10
stdout
1010