倍長整数に桁あふれの値が入った結果の違い
2 posters
倍長整数に桁あふれの値が入った結果の違い
おそらく64bitと32bitの違いによるものだと思うのですが、
winで倍長整数フィールドに桁あふれの値が代入された場合には0になる様なのですが、
macで代入した場合には0ではなく間違った値が入るみたいです。
こういう細かなところの結果がちがうと誤動作の原因になるのですが、代入しようとして値が桁あふれの場合4Dはランタイムエラーなってくれないものでしょうかね。
winで倍長整数フィールドに桁あふれの値が代入された場合には0になる様なのですが、
macで代入した場合には0ではなく間違った値が入るみたいです。
こういう細かなところの結果がちがうと誤動作の原因になるのですが、代入しようとして値が桁あふれの場合4Dはランタイムエラーなってくれないものでしょうかね。
hosaka- 投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪
Re: 倍長整数に桁あふれの値が入った結果の違い
開発部に問い合わせましたところ,ご指摘に動作は仕様とのことでした。
他の言語で調べても,整数オーバーフローの振る舞いは未定義,というのが一般的な仕様のようです。
参考記事:
https://4d-jp.github.io/2019/05/11/signed-int-overflow/
他の言語で調べても,整数オーバーフローの振る舞いは未定義,というのが一般的な仕様のようです。
参考記事:
https://4d-jp.github.io/2019/05/11/signed-int-overflow/
miyako- 投稿数 : 483
登録日 : 2016/07/05
Permissions in this forum:
返信投稿: 不可
|
|