乘法溢出
unsigned int a;
unsigned int b
如何判断a * b溢出?
!!!!!!!!!
[解决办法]
a*b <= 65535
[解决办法]
我错了 sorry~
[解决办法]
比较b和(2^32-1)/ a的大小
不知有没有更简单的办法~
[解决办法]
a*b <= 4294967295
[解决办法]
#include<iostream>
using namespace std;
int main(void)
{
unsigned int a;
unsigned int b;
unsigned int c;
a= 65536;
b= 65536;
c=a*b;
if (c < 4294967295)
{
cout<<"c: "<<c<<endl;
}
else
{
cout<<"ccc: "<<c<<endl;
}
}
[解决办法]
unsigned longlong aaa = a*b;
if (aaa > 0xffffffff)
{
// 溢出
}
[解决办法]
你是想事先判断,还是事后判断?
unsigned int最大的数是2^32
[解决办法]
这是个不错的方法