C语言中按位置1,清0和获取某一位的操作

#include <stdio.h>

int main()
{
	unsigned char c = 2;
	printf("c=%d\n",c);
	int nbit = 3;
	c|=1<<nbit;
	printf("第%d位置1后,c=%d\n",nbit,c);
	
	c&=~(1<<nbit);
	printf("第%d位置0后,c=%d\n",nbit,c);
	
	unsigned char b;
	b=((c>>(1))&1);
	printf("第%d位的值为b=%d\n",1,b);
	
	b=((c>>(2))&1);
	printf("第%d位的值为d=%d\n",2,b);
	return 0;
}

运行结果如下:

c=2
第3位置1后,c=10
第3位置0后,c=2
第1位的值为b=1
第2位的值为d=0
posted @ 2021-02-03 17:34  SpyCoder  阅读(1800)  评论(0编辑  收藏  举报