如何通过位移来置位
来源:互联网 发布:linux vi退不出来 编辑:程序博客网 时间:2024/05/16 15:13
通过位移来设置一个变量的某一位为0或者为1,并且保持其他位不改变,这里置位函数为:
void bit_set(unsigned char *p_data, unsigned char position, bool flag);
p_data 是一个指向要置位的数的指针,position是要具体置位数的哪一位,从0下表开始,flag为bool类型,为真则置位1,为假置位0,下面我们来看看代码实现过程:
#include<iostream>using namespace std;void bit_set(unsigned char *p_data, unsigned char position, bool flag){/* int sum = 1; int sum1 = 1; int sum2 = 0; if(p_data != NULL && (position >=1 && position <= 8)) { for(int i =0; i<position; ++i) { if(i == 0) sum = 1; else sum *= 2; } for(int j=0; j<8; ++j) { if(i == 0) sum1 = 1; else sum1 *= 2; } sum2 = sum1 - sum; if(flag) *p_data |= sum; else *p_data *= sum2;*///简单的四行代码就可以解决问题 if(flag) *p_data |= (1<<position-1); else *p_data &= ~(1<<position-1); }}int main(){ unsigned char p_data = 'A'; unsigned char position = 2; bool flag = 1; bit_set(&p_data, position,flag); cout<<p_data<<endl; return 0;}
阅读全文
0 0
- 如何通过位移来置位
- 位移
- rootMotion, Unreal如何处理位移动画
- java是如何实现位移运算的
- byte,string,long等通过位移操作相互转化
- 如何按指定的位移获取远程资源
- # Unity3d Mecanim动画如何应用3dmax中的动画位移
- Unity如何采用3dMax中的动画位移
- 根据输入日期通过位移方式解决包含当月的前几月自定义函数
- 根据输入日期通过位移方式解决包含当月的前几月自定义函数
- 根据输入日期通过位移方式解决包含当月的前几月自定义函数
- 根据输入日期通过位移方式解决包含当月的前几月自定义函数
- 根据输入日期通过位移方式解决包含当月的前几月自定义函数
- 根据输入日期通过位移方式解决包含当月的前几月自定义函数
- 不使用abs通过位移来实现取一个整数的绝对值
- 在Blender中通过法线贴图和顶点位移实现石块地面的凹凸感
- 位移运算
- 循环位移
- C语言小函数——atol(自己实现)
- AngularJs ui select 禁止search
- 最长上升子序列1003
- 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)
- python3 之if 判断
- 如何通过位移来置位
- 关于eclipse跑不起任何maven命令
- UVA 210
- 特殊的线性表-----栈---栈的插入和删除
- Python--函数参数的传递方式
- File "<stdin>" , line 1 错误
- 智能小车开发记录一(20170714)
- 大神手把手教你:(Python)序列数据的One Hot编码
- Element (center) is obsolete. Its use is discouraged in HTML5 documents