# Insertion

Insertion

Source: Cracking the Code Interview 5.1

## Description

You are given two 32-bit numbers, N and M, and two bit positions, i and j. Write a method
to insert Minto N such that M starts at bit j and ends at bit i. You can assume that the bits j through i have enough space to fit all of M. That is, if M = 10011, you can assume that there are at least 5 bits between j and i. You would not, for example, have j = 3 and i = 2, because M could not fully fit between bit 3 and bit 2.
EXAMPLE
Input: N = 10000000000, M = 10011, i = 2, j = 6
Output: N = 10001001100

## 思路

1. 清空 N 中的 i-j 位
2. 移动M使之对齐 N 的 i-j 位
3. 合并 M 和 N