1、置位和清零
嵌入式系统总是要对变量或寄存器进行位操作。给一个整型变量a,写两段代码,第一个设置a
的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
#define BIT3 (0x1<<3)
static int a;
void set_bit3(void)
{
a |= BIT3;
}
void clear_bit3(void)
{
a &= ~BIT3;
}
2、移位和取值
有一个16位的整数,每4位为一个数,写函数求他们的和。
解释:
整数 0B1101010110110111
和 1101+0101+1011+0111
/* n就是16位的数,函数返回它的四个部分之和 */
char SumOfQuaters(unsigned short n)
{
char c = 0;
int i = 4;
do
{
c += n & 15;
n = n >> 4;
} while (--i);
return c;
}