回答編集履歴

2

追記

2015/12/13 12:23

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -9,3 +9,11 @@
9
9
  信じがたいと思いますが`(32767*2)=-2`となってしまう処理系が多く、`10/(32767*2)=-5`となるものがあります。`10/32767/2=0`なので結果が異なります。
10
10
 
11
11
  今でもint型だけの演算で、int型の上限を超える計算をさせると同じような問題が起きます。
12
+
13
+
14
+
15
+ ---
16
+
17
+ 【追記】
18
+
19
+ げっ、タブがRubyに変わっちゃいました。私が回答した時はプログラミング言語だったので許してください。

1

表現修正

2015/12/13 12:23

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- CやC++言語のように整数型演算のオーバーフローを無視するような言語ですと、常に真にはなりません。
5
+ CやC++言語のように整数型演算のオーバーフローを無視するような言語ですと、常に真にはなりません。
6
6
 
7
7
  今は少ないですが、整数型(int)が`-32768~32767`の範囲しか表現できない処理系だった場合、
8
8
 
9
- `10/32767/2=0`となります。そして、信じがたいと思いますが`(32767*2)=-2`となってしまう処理系が多く、`10/(32767*2)=-5`となるものがあります。
9
+ 信じがたいと思いますが`(32767*2)=-2`となってしまう処理系が多く、`10/(32767*2)=-5`となるものがあります。`10/32767/2=0`なので結果が異なります。
10
10
 
11
11
  今でもint型だけの演算で、int型の上限を超える計算をさせると同じような問題が起きます。