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)...

学习C语言中的位操作

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

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

C语言中常见的置位操作(置0或置1)

如何对某一位置0或者置1? 方法一: 写成宏,方便移植 #define setbit(x,y) x|=(1 #define clrbit(x,y) x&=~(1   方法二: C语言...

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

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

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

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

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

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

C语言之内存和位操作

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

【C语言】编写函数,将一个数的指定位置置0或置1

//编写函数,将一个数的指定位置置0或置1 #include unsigned int set_bit(unsigned int num, int pos, int flag) { int n =...

C语言的几个位操作函数——用起来很方便

在汇编语言中有直接对位进行操作的指令,如置位、复位、位取反、测试某一位等,这对于硬件操作十分方便,在C语言中尽管也提供了一些位操作手段,如按位与、按位或、按位取反等,但它们是对一个字节进行操作,如要对...

【C语言】实现对一个8 bit数据(unsignedchar类型)的指定位(例如第n位)的置0或者置1操作,并保持其他位不变。

功能:实现对一个8 bit数据(unsignedchar类型)的指定位(例如第n位)的置0或者置1操作,并保持其他位不变。 函数原型:  void bit_set(unsigned char *p_d...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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