规范的位操作方法

规范的位操作方法

  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 之间迷失。 如果失误把其中的某一位配置错了 ,后果将是你怎么找 都找不到这个疏忽,工程很有可能在这个

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值