C语言位操作中的置0和置1

原创 2011年01月11日 23:03:00

     C语言中,有时需要进行置位操作,比如针对其中的某些位。这样做的目的是既达到了目标,又不会影响其它位。常用的置位操作如下:

#define   setbit(x,y)    x|=(1<<y) //将X的第Y位置1
#define   clrbit(x,y)     x&=~(1<<y) //将X的第Y位清0

      举个例子:

int main(int argc, char* argv[])
{
      unsigned char a = 0x55;
      unsigned char b = a|(1<<1);      //第一位置1
      unsigned char c = a&~(1<<2);   //第二位置0
      printf("Hello World! 0x%x,0x%x/n",b,c);
      return 0;
}

输出0x57,0x51。0x57即从01010101,变成01010111;0x51即从01010101,变成01010001。

相关文章推荐

C语言位操作符的使用

C语言的设计具备了汇编语言的运算能力,它支持全部的位操作符。位操作符是对字节或字中的位进行测试、置位或移位处理,在对微处理器的编程中,特别适合对寄存器、I/O端口进行操作。 6种伟操作符: (1)...
  • shamohua
  • shamohua
  • 2010年08月02日 20:29
  • 22894

C语言位操作的神应用(位操作)

不少代码通过位操作,解题很巧妙,学习语言,就要学其精髓,学其底层,不可蜻蜓点水 例一: 函数getbits(x,p,n),返回x中从右边数第p位开始向右数n位的字段 unsigned getbi...
  • ccDLlyy
  • ccDLlyy
  • 2016年08月10日 10:30
  • 1306

位操作基础篇之位操作全面总结

Title:       位操作基础篇之位操作全面总结Author:     MoreWindowsE-mail:      morewindows@126.comKeyWord:   C/C++ 位...

c语言-编程位操作技巧

http://www.acmwiki.com/index.php?doc-view-5.htm  位反转:  unsigned rev(unsigned x)  {      ...

C语言一些常用的“位”操作函数

这些函数操作“位”,经常用到: //将双字节中某一位置位 void SetN1(unsigned short *pBuf, int n) { (*pBuf) |= 1...

c语言位操作

c语言位操作 2008-11-22 13:16 C语言位操作(转) 在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位...

学习C语言中的位操作

本篇文章主要参考了以下这篇文章: http://apps.hi.baidu.com/share/detail/5984673 最近在写程序时,我需要判断一个DWORD 类型变量的某一个二进...

C语言再学习 -- 位操作

一、二进制 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。 位:"...

C语言之内存和位操作

内存和程序运行 程序运行的目的是为了得到特定的结果,计算机本质上是用于计算的,既然是用于计算,就需要参与计算的数据,那这些数据就存储在内存中,计算之前参与运算的数据以及运算之后得到的数据,都存储在内...

C语言位操作

C语言提供6个按位操作 >> 右移      无符号数或者是正数不用考虑是左端补0, 负数看实现【一些实现补0,一些保留符号位,这种比较科学吧】 ~   按位取反   【一元运算符】 &   按位与...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言位操作中的置0和置1
举报原因:
原因补充:

(最多只允许输入30个字)