1

在 C++ 中计算 long long int 类型整数绝对值的最快方法是什么?没有if()声明可以吗?我试图转换为未签名然后再次签名,但它不起作用。

4

3 回答 3

5

尝试std::abs对三元运算符,配置文件,并亲自查看。

于 2013-03-18T21:43:56.023 回答
2

改编自Bit Twiddling Hacks,计算整数绝对值 (abs) 而无需分支

long long v; // value to abs()
long long const mask = v >> sizeof(long long) * CHAR_BIT - 1;

unsigned long long result = (v + mask) ^ mask;
于 2013-03-18T21:43:10.967 回答
0

你应该使用llabs. 请参阅cplusplus.com 上的函数参考abs

于 2013-03-18T21:42:53.653 回答