码迷,mamicode.com
首页 > 编程语言 > 详细

c语言 对8bit位数据的某位置1或 0

时间:2015-09-27 06:37:28      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:c;位运算符

/*
对8bit位数据的某位置1或 0
例:00001010  对第二位制零 00001000
*/

#include<stdio.h>
#include<stdlib.h>

void bit_set_1_0(unsigned char *p_data,unsigned char position,int flag)
{
	if (position > 8||position<1 || p_data == NULL || flag<0 || flag>1)
	{
		printf("输入不合法\n");
		exit(-1);
	}

	if ((*p_data >> (position - 1) & 1 )!= flag)
	{
		*p_data = *p_data ^ (1 << (position-1));

	}
}

int main()
{
	unsigned char ch = 5;
	bit_set_1_0(&ch,6,1);
	printf("%d",ch);
	return 0;
}


c语言 对8bit位数据的某位置1或 0

标签:c;位运算符

原文地址:http://shaungqiran.blog.51cto.com/10532904/1698443

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!