🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 右移运算 例如15的二进制为1111,若15右移3位,即15 >> 3,此时1111向右移动3为变成了1,即2的0次方等于1,所以15 >> 3 = 1; 同理:15右移2位,即15 >> 2, 此时1111变成11,即2的一次方 + 2的0次方 = 3;所以15 >> 2 = 3 左移也是同样的计算方式 #### 这样有什么用呢?? 比如,一个字节有八位,你想知道某个位的值,就可以用右移运算了 ### 常用进制转换 |十进制|八进制|二级制| |:---:|:---:|:---:| |1|01|0000 0001| |2|02|0000 0010| |4|04|0000 0100| |8|010|0000 1000| |16|020|0001 0000| |32|040|0010 0000| |64|0100|0100 0000| |128|0200|1000 0000| |256|0400|1 0000 0000| |512|1000|10 0000 0000| ### 按位与或运用 - 按位或: 可以设置多个选项 - 按位与: 可以检测是否设置该选项 ```c int a = 1; int b = 2; int c = 4; int d = 8; int n = a | d; if ((n & a) == a) { echo "yes"; } if ((n & c) == c) { echo "no"; } ``` 或者用八进制表示如下: ```c int a = 01; int b = 02; int c = 04; int d = 010; int n = a | d; if ((n & a) == a) { echo "yes"; } if ((n & c) == c) { echo "no"; } ``` 以上例子只能是1,2,4,8这样特殊规律的数字;在C语言中,0开头的数字表示为八进制 ### 按位与&的用途 例如某个数和二进制0000 1111做按位与计算的话,能够获得某个数后四位的值