Quoting the code for computing the integer absolute value (abs) without branching from http://graphics.stanford.edu/~seander/bithacks.html:
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;
Patented variation:
r = (v ^ mask) - mask;
What is CHAR_BIT and how use it?
CHAR_BIT
CHAR_BIT is the number of bits in char. These days, almost all architectures use 8 bits per byte but it is not the case always. Some older machines used to have 7-bit byte.
char
It can be found in <limits.h>.
<limits.h>
2.1m questions
2.1m answers
60 comments
57.0k users