Reverse Bits
2014-12-15 17:54 李涛的技术博客 阅读(157) 评论(0) 编辑 收藏 举报Reverse bits of an unsigned integer.
typedef unsigned int uint; uint swapBits(uint x, uint i, uint j) { uint lo = ((x >> j) & 1); uint hi = ((x >> j) & 1); if (lo ^ hi) { x ^= ((1U << i) | (1U << j)); } return x; } uint reverseXor(uint x) { uint n = sizeof(x) * 8; for (uint i = 0; i < n/2; i++) { x = swapBits(x, i, n-i-1); } return x; }
还有一些trick的方法,不再列出,可参考原网页:http://leetcode.com/2011/08/reverse-bits.html