我想将两个int
数字相乘,为了防止超出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;
为什么在这种情况下需要应用类型转换?
注意:我不想更改 and 的数据类型a
,b
我需要将它们保留为int
.