1. C语言中 1<<i 表示将1的二进制每位向左移动 i 位,末位补 0 。
    2. 左移运算符(<<)是C语言中的一种常见的运算符,一般用法可以通过下面的例子讲解来说明:

    如:1<<5
    由于1的二进制为 0000 0001,左移 5 位就是将每位向左移动 5 位,末位补 0,所以1<<5 后结果为0010 0000,转换为十进制就是32.

    1. 1<<i 表示1 左移 i 位,其值等于(转换为十进制数) 2的 i 次方。

    mask 是掩码的意思
    int mask=~(~0<<3); 详解

    1. mask 占4个字节,
    2. ~0表示0取反 结果为1,
    3. 1<<3 表示 1 向左移 3 个位置,

      1. **结果是 0000 0000 0000 0000 0000 0000 0000 1000**
    4. ~(1<<3) 表示1<<3再 取反

       **结果是 1111 1111  1111  1111  1111  1111  1111 0111**<br />**& 是”按位与“运算符**