input:n=10000000000, m=10101, i=2, j=6
output:n=10001010100
将二进制n的第2到6位替换为m。
1 int updateBits(int n, int m, int i, int j){ 2 int max = ~0; 3 int left = max - ((1 << j) - 1); 4 int right = ((1 << i) - 1); 5 int mask = left | right; 6 return (n & mask) | (m << i); 7 }
整数奇偶位互换
int swapOddEvenBits(int x){ return ((x & 0xaaaaaaaa) >> 1) | ((x & 0x55555555) << 1); }