上の桁の桁あふれを無視している計算と同じです。なりマイナスの数字となるからです。-2147483648となります。例外が発生するようにできます。桁あふれを事前に考慮してプログラミングが必要です。プログラムをするのは大事です。32bitの結果が64bitで与えられないのでしょうか?それは繰り返し加減乗除算を適用したいからです。アセンブリ言語ではなく型付き言語の縛りです。intの乗算命令をディスアセンブリしてみます。2015でx64ビルドしたときのものです。64bitコードにおける関数の戻り値はRAXレジスタで渡します。戻り値の型はintなのでRAXの下位32bit、すなわちEAXが使用されます。64bitの符号付き演算を行います。2147483648となります。4294967296)なのでEAXは-2147483648となります。これをもう少し具体化するためにC++の関数ポインタをキャストしてみましょう。0;}実行結果は次の通りです。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。