package problems.easy;
/**
* Created by sherxon on 5/3/17.
*/
public class InsertionBit {
public static void main(String[] args) {
int m=256;
int n=5;
System.out.println(Integer.toBinaryString(insert(m, n, 2, 4)));
}
static int insert(int m, int n,int j, int i){
for (int k = j; k <=i; k++) {
boolean isBitM = (m & (1 << k)) != 0;
boolean isBitN = (n & (1 << (k-j))) != 0;
if(isBitN && !isBitM){ // if n has 1 and m has 0
m = m | (m << k); // set 1
}else if(!isBitN && isBitM){ // n has 0 and m has 1
int mask= ~( m << k); // set 0
m= m & mask;
}
}
return m;
}
}