C语言位操作:将某一位置1,或将某一位置0

首先,位操作是通过与运算和或运算来实现的,与的特性是:有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;
}

实验结果:

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值