对于位的操作

在一个寄存器中,我们想操作某一位,或者某几位,但是又不关心也不应该关心其他位的用途。这便是核心的思想。

只置某1位:

a&=~(1<<x); //偏移x的位置上清0

a|=    (1<<x); //偏移x的位置上置1

置多位:

1.不正确的方法

a&=~0001 1100;

b|=    0001 1100;

这种方法我们关心了其他位,因此,不推荐。

2.正确的方法

a&=~((1<<2)|(1<<3)|(1<<4));

b|=     (1<<2)|(1<<3)|(1<<4);

判断语句中,作为判据,以if为例

if(a&(1<<x)       ){;} \判断偏移x的位置上的数是1,则执行

if(a&(1<<x)==0) {;} \判断偏移x的位置上的数是0,则执行

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/otaku-lip/p/4765085.html