我试图在c ++中代表一些大数字.在下面的代码中,如果尝试只打印s编译器就不会抱怨.但是如果尝试进行一些乘法并将其存储在t编译器中会说integer overflow in expression...
我试图制作它,unsigned long long t但编译器再次抱怨.在没有任何溢出的情况下,有没有办法进行这种乘法?
int main ()
{
long long int s = 320718425168;
long long int t = 4684688*68461; //4684688*68461 = 320718425168
return 0;
}
Run Code Online (Sandbox Code Playgroud)
用作产品因素的文字是类型int,不能代表产品.
long long首先要考虑其中一个因素.
long long t = (long long)4684688 * 68461;
Run Code Online (Sandbox Code Playgroud)
或使用相应的文字后缀ll或LL更改文字类型.即
long long t = 4684688LL * 68461;
Run Code Online (Sandbox Code Playgroud)
演示.