请编码实现:实现一个对8Bit数据(unsigned char 类型)的指定位(例如第n位)的置0或者置一操作,并保持其他位不变。
来源:互联网 发布:淘宝分销合作协议书 编辑:程序博客网 时间:2024/05/22 13:42
#include <stdio.h>void bit_set(unsigned char *p_data,unsigned char position,int flag){if(flag)//将标志位变为1时用或等于{switch(position){case 1:*p_data |= 0x01;break;case 2:*p_data |= 0x02;break;case 3:*p_data |= 0x04;break;case 4:*p_data |= 0x08;break;case 5:*p_data |= 0x10;break;case 6:*p_data |= 0x20;break;case 7:*p_data |= 0x40;break;case 8:*p_data |= 0x80;break;default:break;}}else//将标志位置为0时用与等于(取反){switch(position){case 1:*p_data &= ~0x01;break;case 2:*p_data &= ~0x02;break;case 3:*p_data &= ~0x04;break;case 4:*p_data &= ~0x08;break;case 5:*p_data &= ~0x10;break;case 6:*p_data &= ~0x20;break;case 7:*p_data &= ~0x40;break;case 8:*p_data &= ~0x80;break;default:break;}}printf("%d\n",*p_data);}
测试为:
int main(){unsigned char ch = 'A';//01000001bit_set(&ch,3,1);//01000101bit_set(&ch,7,0);//00000101return 0;}
方法可以简化如下:
#include <stdio.h>void bit_set(unsigned char *p_data,unsigned char position,int flag){//只认定一位进行移位或与计算if(flag){*p_data |= (0x01<<(position-1));}else{*p_data &= ~(0x01<<(position-1));}printf("%d\n",*p_data);}
测试如下:
int main(){unsigned char ch = 'A';//01000001bit_set(&ch,3,1);//01000101bit_set(&ch,7,0);//00000101return 0;}
执行结果如图:
两者比较可知,对于程序应该在实现功能的同时进行函数简化。
0 0
- 请编码实现:实现一个对8Bit数据(unsigned char 类型)的指定位(例如第n位)的置0或者置一操作,并保持其他位不变。
- 【c语言】实现对一个8bit数据(unsigned char 类型)的指定位(例如第n位)置0或者置1操作,并保持其他位不变
- 【C语言】请编写实现以下功能函数:实现对一个8bit数据(unsigned char)的指定位(例如第8位)的置0或置1操作,并保持其他位不变
- 【C语言】实现对一个8 bit数据(unsignedchar类型)的指定位(例如第n位)的置0或者置1操作,并保持其他位不变。
- [详细分析]实现一个8bit数据(unsigned char)的指定位的置0或者置1操作,并保持其他位不变
- 【C语言】实现对一个8bit数据(unsigned char)类型的指定位的置0或置1操作,并保持其他位不变
- 实现对一个8bit数据(unsigned char)类型的指定位的置0或置1操作,并保持其他位不变
- 【C语言】实现对一个8bit数据的指定位的置0或者置1操作,并保持其他位不变。
- 实现对一个8bit数据指定位(例如第n位)的置0或置1操作
- 对一个8bit unsigned char的数据的指定位进行置1或置0操作,其它位保持不变
- 实现对一个8比特位数据(unsigned char)的指定位的置0或者置1操作
- 实现对一个8bit数据的指定位置0或置1操作,其他位不变
- 8bit数据的指定位的置0或者置1操作
- 将整数的第n位清零或置1,其他位不变
- 练习 2-6 编写一个函数setbits(x, p, n, y),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变。
- 练习 2-6 编写一个函数 setbits(x, p, n, y),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变。
- 定义一个宏,实现对数据a的第n位置位、清零、取反
- 位运算(二):8bit数据指定位置0或置1操作
- “邦定”是什么,是灯火阑珊处的她
- Apache cxf JaxRs基本应用
- 预处理,编译, 优化, 汇编, 链接
- Struts2中动态的指定返回的结果集
- 不要62
- 请编码实现:实现一个对8Bit数据(unsigned char 类型)的指定位(例如第n位)的置0或者置一操作,并保持其他位不变。
- 在 VirtualBox 的 Linux 下使用共享文件夹
- GOF23设计模式之工厂方法模式的实现
- windows下将github的mergetool设置为 beyond compare 4 (bc4) 的方法
- 开源库Simd在vs2010中的编译及简单使用
- Android捕获崩溃异常
- 并查集详解
- java JAXB 学习
- 黑马程序员IOS-C语言-基础