02
2020
04

编码实现某一变量某位清0或置1

给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清a的bit 3,在以上两个操作中,要保持其他位不变。


笔者认为,在对ARM寄存器操作时会经常用到这一块,所以要注意这块:


#define BIT3 (0x1 << 3 ) Satic int a;

//设置a的bit 3: 

void set_bit3( void ) 

      a |= BIT3; //将a第3位置1 

}

//清a的bit 3 

void set_bit3( void ) 

{

  a &= ~BIT3; //将a第3位清零 

}

说明:在置或清变量或寄存器的某一位时,一定要注意不要影响其他位。所以用加减法是很难实现的。


还有一个就是保留某位:


//保留第k位

void set_bit3(void)

{

 a &= BIT3;

}

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。