赞
踩
首先,位操作是通过与运算和或运算来实现的,与的特性是:有0为0,全1为1,或的特性是:有1为1,全0为0。也就是,
和0与会被清0,和1与会被保持
和1或会被置1,和0或会被保持
那么位操作的实现就很明确了,那清0就使用与运算,置1就使用或运算。
接下来,以把0xF0的bit2置1,bit4清0为例,代码如下
- #include <stdio.h>
-
- int main(void) {
- int a = 0xF0; //二进制数字
- int b, c;
- b=a|(1<<2);//0b1111'0100=0xf4,~是取反操作
- c=a&(~(1<<4));//0b1110'0000=0xe0
-
- printf("十六进制输出:\n"); //以十六进制形式输出
- printf("a=%#X, b=%#X, c=%#X\n", a, b, c); //X大写,则输出的前缀和字母都大写
-
- //小技巧
- a|=1<<2;
- printf("a=%#X\n", a);
- a&=~(1<<4);
- printf("a=%#X\n", a);
- return 0;
- }
实验结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。