teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

微修正

2020/11/07 03:29

投稿

YT0014
YT0014

スコア1819

answer CHANGED
@@ -13,19 +13,19 @@
13
13
  まず、最初のケースの場合、n1は、当然、桁あふれを起こします。
14
14
  n1の入力値を2進数にすると、以下のようになる。
15
15
 
16
- 1000001010010101100100010010010111101101010011100__10001010110101010101010101010101
16
+ 1000001010010101100100010010010111101101010011100:10001010110101010101010101010101
17
- なお、__は、下位32との分離のために挿入。以後、2進数は、同様に表記する。
17
+ なお、は、下位32との分離のために挿入。以後、2進数は、同様に表記する。
18
18
 
19
19
  結果、n1は、10001010110101010101010101010101、10進数ならば-1,965,730,475となる。
20
20
  マイナスの値である為、maxとはならない。
21
21
 
22
22
  同様に、最後のケースでは、全て桁あふれを起こし、以下のようになる。
23
23
 
24
- n1は、2進数で、111111001010001100__10110111000101010111000111000111
24
+ n1は、2進数で、111111001010001100:10110111000101010111000111000111
25
25
  桁あふれの結果、10進数で-1,223,331,385
26
- n2は、2進数で、110010100001110__00010010010011101111000111000111
26
+ n2は、2進数で、110010100001110:00010010010011101111000111000111
27
27
  桁あふれの結果、10進数で  307,163,591
28
- n3は、2進数で、101000011011__00000001110101001011000111000111
28
+ n3は、2進数で、101000011011:00000001110101001011000111000111
29
29
  桁あふれの結果、10進数で   30,716,359
30
- n4は、2進数で、100000010__10110011011000100001000111000111
30
+ n4は、2進数で、100000010:10110011011000100001000111000111
31
31
  桁あふれの結果、10進数で-1,285,418,553

1

注釈の追加

2020/11/07 03:29

投稿

YT0014
YT0014

スコア1819

answer CHANGED
@@ -4,6 +4,7 @@
4
4
 
5
5
  2.intは、-2,147,483,648以上、2,147,483,647以下の範囲しか扱えない。
6
6
  これは、2進数の32桁の範囲で、最上位は、符号(+または-)として扱われる。
7
+ (今回お使いのC言語において。intは、2進数16桁などの場合もある)
7
8
 
8
9
  3.扱えない数値が格納される場合、扱える範囲を超える桁は無視される。
9
10
  これは、桁あふれ(Overflow)と呼ばれる現象。