C语言位操作中指定的某一位数置0、置1、取反

一、指定的某一位数置1

宏 #define setbit(x,y)  x|=(1<

二、指定的某一位数置0

宏  #define clrbit(x,y)  x&=~(1<

三、指定的某一位数取反

宏  #define reversebit(x,y)  x^=(1<

三、获取的某一位的值

宏 #define getbit(x,y)   ((x) >> (y)&1)

四、C++测试代码:

#include

#include "stdio.h"

#include

using namespace std;

#define setbit(x,y) x|=(1<

#define clrbit(x,y) x&=~(1<

#define reversebit(x,y) x^=(1<

#define getbit(x,y) ((x) >> (y)&1)

int main()

{

unsigned int m=0x0f0ff0f0;

printf("original m=0x%x\n",m);

reversebit(m,7);

printf("reversebit 7 bit,then m=0x%x\n",m);

setbit(m,7);

printf("setbit 7 bit,then m=0x%x\n",m);

clrbit(m,7);

printf("clrbit 7 bit,then m=0x%x\n",m);

for(int i=0;i

{

printf("bit[%d]=%d\n",i,getbit(m,i));

}

return 0;

}

五、测试运行结果:

c语言置字节某一位为0,C语言位操作中指定的某一位数置0、置1、取反相关推荐

  1. C语言位操作中指定的某一位数置0、置1、取反

    C语言位操作中指定的某一位数置0.置1.取反 一.指定的某一位数置1 宏 #define setbit(x,y)  x|=(1<<y) 二.指定的某一位数置0 宏  #define clr ...

  2. 【STM32】位操作、按位与、按位或、按位异或、取反、左移、右移等基础 C 语言知识补充

    文章目录 1 位操作 1.1 按位与 1.2 按位或 1.3 按位异或 1.4 取反 1.5 左移 1.6 右移 2 单片机中常用操作 2.1 不改变其他位时,对某几个位设定值 2.2 移位操作提高代 ...

  3. c语言分离个位十位百位_用c语言如何表示出一个数的个位,百位,十位

    展开全部 如果n是个多位十进制数,那么n%10是个位数字,e5a48de588b662616964757a686964616f31333433663066n/10%10是十位数字,n/100%10是百 ...

  4. 位操作:置1、置0、取反、取值--SetBit ResetBit Reversebit GetBit

    #define setbit(x,y) x|=(1<<y) // 位置1 #define clrbit(x,y) x&=~(1<<y) // 位置0 #define r ...

  5. 字节转换比特位c语言,C语言实现双字节在数组中按比特位移动

    先说一下应用场合,在LED点阵显示屏中,为了节省flash空间,常用一个bit位来标记哪个灯是否点亮.为了做出比较炫的效果,比如16 * 16像素gif动画边边移动边跳跃.就应用到该思想. 双字节是1 ...

  6. C语言编程开发中用好位操作符

    C语言编程开发中用好位操作符 1. C语言中的位操作符 因为C语言的设计目的是取代汇编语言,所以它必须支持汇编语言所具有的运算能力,所以C语言支持全部的位操作符(Bitwise Operators). ...

  7. (转载)C语言右移运算符的问题(特别当与取反运算符一起时)

    (转载)http://hi.baidu.com/fanggai/item/1c44f1f2e3d81dc4a935a266 关键词:C语言,右移运算符,右移运算符+取反运算符,算术右移 环境:VC6. ...

  8. 51单片机通过两片74HC595级联,用8位LED数码管,分别显示当前日期,如:“2”、“0”、“-”、“0”、“5”、“-”、“2”、“6”,用Proteus仿真实现。

    1.先上仿真图,但这么连仿真图是不太正确的,要注意.展示的话能用就行. 2.从上到下依次放上数据手册上的引脚解释和逻辑功能和时序图 3.贴上代码:写了发送一字节数据函数,发送全部字节函数,加上一些写了 ...

  9. c语言变长数组参数,使用gdb跟踪C语言中变长数组的实现

    项目的代码中出现的一个问题,问题的表现是,在一个函数中使用到了变长数组,而对超过这个数组 范围的一个赋值,导致了数组首地址为空. 我把这个问题抽出来形成了一个示例函数,在i386下也出现类似的问题,代 ...

最新文章

  1. memcached和redis的区别和应用场景
  2. 2021惠阳一中高考成绩查询,惠阳一中实验学校2019高考成绩喜报、本科重本高优上线人数...
  3. 获取当前元素在兄弟元素节点中的索引
  4. 用PHP打印出前一天的时间
  5. contourf参数 python_Python机器学习(六)
  6. 普通话/汉语发音口型大全
  7. SNMP简单网络管理协议
  8. AWS向中国有限预览客户推出多级别AWS支持服务
  9. do_initcalls 的原理
  10. 数据重塑_人工智能能否重塑全球力量平衡?
  11. 常见排序算法之基数排序
  12. qq恢复官方网站服务器繁忙,qq恢复官方网站
  13. 豆丁文档无需豆元直接下载
  14. php 0x80070005,PHPIIS0x80070005解决方法
  15. 机动车污染排放检验信息系统信息化建设目标及规范
  16. 零零后Java架构师斗胆挑战下一个传智播客,你怎么看?
  17. python自动化测试实战-无涯(学习与研究)[一]
  18. 大连海事大学计算机20考研(计算机应用 技术)专硕410+经验贴
  19. 最简单的基于FFMPEG+SDL的音频播放器
  20. 微服务项目之电商--19.ElasticSearch基本、高级查询和 过滤、结果过滤、 排序和聚合aggregations

热门文章

  1. Wayfair面向中国卖家开放入驻,一文带你抢跑Wayfair平台(内附福利)
  2. “2014全球未来网络与SDN技术大会”精彩剪辑(上)
  3. OpenCV实现频率域滤波——以高斯低通滤波去噪为例
  4. 十年经历:软件开发的“三重门”
  5. JavaScript 多维数组
  6. 刮分10万奖金池,FinClip 小程序插件开发大赛有的搞
  7. TDSQL:从自主可控金融级数据库看腾讯“智能+”技术中台之路
  8. 虚拟现实仿真VR技术的变电站培训与勘察应用解决方案
  9. 短线高手如何做当日黄金白银短线
  10. 长达十五个小时的面试!程序员终极面试!