关于按位与和按位或

/*所以这里有一个技巧:|1 和 &0 都是自己作为主导的。谁|1,那么都为1,用于复制单个1;谁&0的话,那么都为0,用于复制单个0

    &1 和 |0都是别人主导的,相当于什么都不操作,即不影响别人

    所以对于多位数进行相与或者是相或的时候,比如16位的操作,想让

    其中的一位变成1,其余的不变的话,那么就是一个主导,一个不主导,且

    这十六位都是进行相同的操作,即位|1 和 |0

    同理,想让其中的一位变成0的话,其  `余的不变的话,那就&0 和 &1

   

    当然这只是其中一位的情况,那么多位呢?要想让同时让多位的1,复制上去

    而其余的位数不变的话,也是同理,让这几位都|1, 其余的都|0就可以了

    同时让多位位0也是同理,直接&0 其余位数 &1就好了

   

    还有最后一种情况,如果想让你同时让几个连续的位数,赋值成101101,而其余的位数不变,

    遇见这样的情况应该怎么办呢?

    你可以对相同数据的相邻位数按照我们之前的方式进行|1,其余的|0,和& 其余的&1,

    但是最简介的方式就是:将你想要复制位置的数据先清空,然后再进行或就好了。清空是什么?

    清空就是在那几个指定的位置&0,其余的&1就好了,这样保证其位置上是0,那么既然位置上是0

    那么再或上一段数字的话,直接或上去就好了,全零使用或的话,不管或的是谁都是全复制。*/

你可能感兴趣的:(51单片机,单片机,嵌入式硬件,物联网,vscode)