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语言中常见的置位操作(置0或置1)

如何对某一位置0或者置1? 方法一: 写成宏,方便移植 #define setbit(x,y) x|=(1 #define clrbit(x,y) x&=~(1   方法二: C语言...
  • hhsu28
  • hhsu28
  • 2016年10月25日 20:40
  • 1300

C语言位操作符的使用

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

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

Title:       位操作基础篇之位操作全面总结Author:     MoreWindowsE-mail:      morewindows@126.comKeyWord:   C/C++ 位...
  • MoreWindows
  • MoreWindows
  • 2012年03月19日 09:34
  • 115034

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

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

学习C语言中的位操作

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

c语言位操作

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

C语言位运算符及常见用法

一、位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 >> 右移 1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有...
  • xing_hao
  • xing_hao
  • 2011年08月11日 09:46
  • 28539

C语言再学习 -- 位操作

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

c语言-编程位操作技巧

http://www.acmwiki.com/index.php?doc-view-5.htm  位反转:  unsigned rev(unsigned x)  {      ...
  • hengfanz
  • hengfanz
  • 2014年04月16日 17:38
  • 836

单片机的C语言中位操作用法

在对单处机进行编程的过程中,对位的操作是经常遇到的。C51对位的操控能力是非常强大的。从这一点上,就可以看出C不光具有高级语言的灵活性,又有低级语言贴近硬件的特点。这也是在各个领域中都可以看到C的重要...
  • king110108
  • king110108
  • 2015年04月24日 22:46
  • 651
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言位操作中的置0和置1
举报原因:
原因补充:

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