对数据的某位清零
#include "stdio.h"
typedef unsigned char uint8_t;
void main(void)
{
uint8_t a = 0x0f;
//对 a 的第一个bit清零
a &= ~ ( 0x01<<0 );
printf("%x\n",a);
}
对数据的某位置一
#include "stdio.h"
typedef unsigned char uint8_t;
void main(void)
{
uint8_t a = 0xf0;
//对 a 的第一个bit置1
a |= 0x01<<0;
printf("%x\n",a);
}
对数据的连续几个位清零
#include "stdio.h"
typedef unsigned char uint8_t;
void main(void)
{
uint8_t a = 0x0f;
uint8_t b = 0x03;
//对 a 的第一个和第二个bit清零(只需要改变一下b的值)
a &= ~ ( b<<0 );
printf("%x\n",a);
}
对数据的连续几个位置一
#include "stdio.h"
typedef unsigned char uint8_t;
void main(void)
{
uint8_t a = 0xf0;
uint8_t b = 0x03;
//对 a 的第一个和第二个bit置1(只需要改变一下b的值)
a |= b<<0 ;
printf("%x\n",a);
}
对数据的某位取反
取反的意思就是,如果它是1取反就是0,如果它是0取反就是1。
#include "stdio.h"
typedef unsigned char uint8_t;
void main(void)
{
uint8_t a = 0xf0;
uint8_t b = 0x01;
//对 a 的第一个bit取反(只需要改变一下b的值)
a ^= b<<0 ;
printf("%x\n",a);
}