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