[LintCode] Update Bits

n = n & ~(1 << k); 就是把n中的第k个bit设为0

n = n | ((m & (1<<(k-i)))<<i);

  1. m & (1<<(k-i)) 是从m的第一个bit开始扫描.因为已知j-i = size of (m)2
  2. ((m & (1<<(k-i)))<<i) 扫描后, 往左shift i位对准n上的i位.
  3. n = n | ((m & (1<<(k-i)))<<i) 把n的第i位到j位设为m的0~(j-i)位