实现一个对8bit数据指定某一位置0或1
2015-06-08 23:24
288 查看
<pre name="code" class="cpp">
方法一
#include<stdio.h>#include<math.h>void bit_set(unsigned char *p_date, unsigned char position, int flag){char a =(char) pow(2, (position - 1)); //指数 2^(position - 1)if (flag == 1){*p_date |= a;//0000 0010或0000 0001 |表示按位或} // 0000 0011else{*p_date &= ~a; //0000 0010&1111 1110 ~表示按位取反} // 0000 0010 &表示按位与}int main(){unsigned char val = 2;bit_set(&val, 1, 0);printf("%d\n", val);getchar();return 0;}
方法二
#include<stdio.h>void bit_set(unsigned char *p_date, unsigned char position, int flag){if (flag == 1){*p_date |= (1 << (position - 1));//0000 0010或0000 0001} // 0000 0011else if (flag = 0){*p_date &= ~(1 << (position - 1));//0000 0010&1111 1110} // 0000 0010}int main(){unsigned char val = 2;bit_set(&val, 1, 0);printf("%d\n", val);getchar();return 0;}
相关文章推荐
- 提高Python运行效率的六个窍门
- JavaScript读书笔记(4)-变量、作用域和内存问题
- 第7章 第5题
- 3.3 循环结构语句
- Halcon 学习总结——电子加密狗字符检测(ocr_dongle)
- 3.2 选择结构语句
- 顺序表实现-c
- 苹果开发 笔记(36)coreImage
- Mybatis Demo
- 自己实现文本相似度算法(余弦定理)
- 提高Python运行效率的六个窍门
- HDU 4179 二维的Dijkstra
- 单链表的基本操作
- 代码: 日期和时间 datepicker
- Reverse Linked List
- 关于进程与线程的讲解 最最最生动的理解
- 算法导论习题-1.2-2
- Bit、 Byte_KB_MB_GB 间的关系
- 文本相似度计算基本方法小结
- 阅读JDK源码有感