我在想如何在不使用的情况下获得整数的绝对值if
声明也不abs()
。起初我使用的是左移位(<<
),试图将负号移出范围,然后将位右移回原来的位置,但不幸的是它对我不起作用。请让我知道为什么它不起作用以及其他替代方法。
From 位摆弄黑客 http://graphics.stanford.edu/~seander/bithacks.html#IntegerAbs:
int v; // we want to find the absolute value of v
unsigned int r; // the result goes here
int const mask = v >> sizeof(int) * CHAR_BIT - 1;
r = (v + mask) ^ mask;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)