您的位置:首页 > 编程语言 > C语言/C++

【C语言】实现对一个8bit数据(unsigned char)类型的指定位的置0或置1操作,并保持其他位不变

2016-03-07 23:33 513 查看
功能:实现对一个8bit数据(unsigned char)类型的指定位(例如第n位)的置0或置1操作,并保持其他位不变。

函数原型:void bit_set(unsigned char *p_data, unsigned char position, int flag)

函数参数说明:p_data是制定的源数据,position是指定位(取值范围1~8),flag是置0还是置1操作

#include <stdio.h>
#include <assert.h>

void bit_set(unsigned char *p_data, unsigned char position, int flag)
{
unsigned char tmp = 1;
assert(p_data);
if (flag)
{
*p_data |= (tmp << (position - 1));
}
else
{
*p_data &= ~(tmp << (position - 1));
}
}
int main()
{
unsigned char data = 15;
bit_set(&data, 5, 1);
printf("%d\n", data);
getchar();
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: