int2 つの数値を乗算したいのですが、int制限 (2147483647) を超えないようにするために、結果はlong long変数に保存されます。だから、私はこのコードを試します:
int a, b;
long long result = a * b;
そしてそれはうまくいきません!もしa=50000、b=50000そしてresult=-1794967296。
したがって、型キャストをaandに適用する必要がありbます。
int a, b;
long long result = (long long)a * (long long)b;
この場合、型キャストを適用する必要があるのはなぜですか?
a注:とのデータ型を変更したくないので、bそのままにしておく必要がありますint。