回答編集履歴

1

追記

2022/05/13 02:42

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -9,7 +9,22 @@
9
9
  int decimal, i = 0;
10
10
  printf("10進数を入力してください>>>");
11
11
  scanf("%d", &decimal);
12
- do i++; while (decimal >> i);
12
+ while (decimal >> ++i) ;
13
13
  do putchar(decimal >> --i & 1 | '0'); while (i);
14
14
  }
15
15
  ```
16
+ **追記**
17
+ ビット演算ではなく、四則演算だけでやるとすれば、
18
+ ```c
19
+ #include <stdio.h>
20
+
21
+ int main(void)
22
+ {
23
+ int decimal, i = 2;
24
+ printf("10進数を入力してください>>>");
25
+ scanf("%d", &decimal);
26
+ while (decimal / i) i *= 2;
27
+ i /= 2;
28
+ do putchar(decimal / i % 2 + '0'); while (i /= 2);
29
+ }
30
+ ```