C/C++/비트/쉬프트2012. 9. 2. 13:59

int v;

unsigned int r; // v의 절대값

const int mask = v >> (sizeof(int) * CHAR_BIT - 1);

// CHAR_BIT 는 char의 비트수


r = (v + mask) ^ mask;


// or

r = (v ^ mask) - mask;


출처 : http://graphics.stanford.edu/~seander/bithacks.html

Posted by 투명테잎