【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操作
函数原型: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; }
相关文章推荐
- C语言,程序设计
- C语言 百炼成钢18
- 【总结】C++静态成员变量的特性总结及测试用例
- 8. String to Integer (atoi) ---Leetcode
- ubuntu下编写编译C++程序
- C++第1次实验(两个数的和与差)
- ubuntu下利用gcc编译C语言程序
- c++双链表【构造函数、运算符重载、析构函数、增删查改及逆置等】
- 类的前向声明
- c++宽字符处理
- C++explicit的用法
- C++学习之构造函数、析构函数
- C++ DirectX 游戏开发中级视频教程 03 资源下载链接
- C++11 智能指针——shared_ptr
- c语言之指针调用注意
- c++单链表【构造函数、运算符重载、析构函数、增删查改等】
- iOSDay02C语言分支结构
- C语言里的文件函数
- C++学习之类的构造函数、析构函数
- C语言的编译和链接