package com.interview.algorithms.bit;
/**
* Created_By: stefanie
* Date: 14-10-10
* Time: 下午10:01
*/
public class C16_1_BitCopy {
public static int copy(int N, int M, int i, int j){
N = clean(N, i, j);
return set(N, M, i, j);
}
private static int clean(int N, int i, int j){
int mask = -1 ^ (((1 << (j - i + 1)) - 1) << i);
return N & mask;
}
private static int set(int N, int M, int i, int j){
int mask = M << i;
return N | mask;
}
}