对数据的某位清零
#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置1a |= 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);}
