我尝试使用下面的代码来获取long long类型整数的abs值;
long long v=abs(originalValue);
按预期工作,直到v的值超过1073741824(1G)
如果v是2147482648,则abs(v)是-2147482648。
如果v是10737418240,则abs(v)也是-2147482648。
我不明白是什么原因导致了这些。
欢迎任何评论
由于
InterDev中
答案 0 :(得分:3)
改为使用llabs()
:
long long v = llabs(originalValue);
答案 1 :(得分:1)
abs
将int作为参数,长期使用llabs