规范的位操作方法

来源:互联网 发布:mac外接显示器不清楚 编辑:程序博客网 时间:2024/05/18 02:13

规范的位操作方法

  1. 对某一位清零操作

       a &= ~ (1<<6) // 括号内的的1向左移动6位 得到 0100 0000 

      // 对结果取反 1011 1111

      //“&”操作的特点是 遇0则0 ,见1不变 。 那么最后结果是 a的第七位(bit6) 清零,其他位不变

  2. 对某一位置位操作

       a |= (1<<6)  //括号内的1向左移动6位 得到 0100 0000

             // “ | ”或操作的特点是 遇1则1 , 见0不变。 那么最后的结果是 a的第七位(bit6) 置位, 其他位不变


  3. 对某一位取反操作

       a ^= (1<<6) //括号内的1向左移动6位 得到 0100 0000

  // " ^ "异或操作的特点是 不同值为1,相同值归零。 那么最后的结果是 a的第七位(bit6) 取反, 其他位不变

以上操作的优点

    如果有一个寄存器 要对其中的一个位 进行配置。而不希望影响其他的位

    eg: PCON = 0011 0101  , 要对bit(6) 进行配置 ,如果按以前的方式 操作: PCON = 0111 0101 ; 

          这么做的缺点很明显,很容易在这么多的0 、1 之间迷失。 如果失误把其中的某一位配置错了 ,后果将是你怎么找 都找不到这个疏忽,工程很有可能在这个

          小疏忽中 停留半年。 习惯决定水平!

0 0
原创粉丝点击