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

回答編集履歴

2

追記

2015/12/13 12:23

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -3,4 +3,8 @@
3
3
  CやC++言語のように整数型演算のオーバーフローを無視するような言語ですと、常に真にはなりません。
4
4
  今は少ないですが、整数型(int)が`-32768~32767`の範囲しか表現できない処理系だった場合、
5
5
  信じがたいと思いますが`(32767*2)=-2`となってしまう処理系が多く、`10/(32767*2)=-5`となるものがあります。`10/32767/2=0`なので結果が異なります。
6
- 今でもint型だけの演算で、int型の上限を超える計算をさせると同じような問題が起きます。
6
+ 今でもint型だけの演算で、int型の上限を超える計算をさせると同じような問題が起きます。
7
+
8
+ ---
9
+ 【追記】
10
+ げっ、タブがRubyに変わっちゃいました。私が回答した時はプログラミング言語だったので許してください。

1

表現修正

2015/12/13 12:23

投稿

Chironian
Chironian

スコア23274

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