回答編集履歴

1

すこし追加

2019/12/06 13:29

投稿

rubato6809
rubato6809

スコア1382

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  for (int i = 0; i < 10; i++) {
12
12
  small += billion;
13
13
  bignum += billion;
14
- printf(" %3d: %12ld = %010p, %12d = 0x%x, %12d\n",
14
+ printf(" %3d: %12ld = %p, %12d = 0x%x, %12d\n",
15
15
  i, bignum, (char*)bignum, (int)bignum, bignum, small);
16
16
  }
17
17
  printf("%d = sizeof(int) \n", sizeof(int));
@@ -44,4 +44,5 @@
44
44
  100億を表示しているのは long int 型変数を %ld 変換指定で表示した場合です。100億は少なくとも34bit必要であることがわかります。
45
45
  そして、100億のところで ``` 1410065408 ``` が表示されています。この表示は、34bitの数値の、下位32bitを表示したものです。
46
46
 
47
- 取り急ぎ、このコードと表示結果を参考にしてみてください。
47
+ 取り急ぎ、このコードと表示結果を参考にしてみてください。
48
+ まずは、long int, long long int など、大きな整数型の sizeof を確認することからやり直したらいかが?その次は printf() の変換指定を調べることかな。