深入浅出C语言:(十二)位操作

目录一、按位与运算(&)二、按位或运算(|)三、按位异或运算(^)四、取反运算(~)五、左移运算(<<)六、右移运算(>>)七、修改寄存器的位操作方法1、把变量的某位清零2、把变量的某几个连续位清零3、对变量的某几位进行赋值4、对变量的某位取反C 语言提供了六种位运算符:运算符 & | ^...
摘要由CSDN通过智能技术生成

目录

一、按位与运算(&)

二、按位或运算(|)

三、按位异或运算(^)

四、取反运算(~)

五、左移运算(<<)

六、右移运算(>>)

七、修改寄存器的位操作方法

1、把变量的某位清零

2、把变量的某几个连续位清零

3、对变量的某几位进行赋值

4、对变量的某位取反


C 语言提供了六种位运算符

运算符 & | ^ ~ << >>
说明 按位与 按位或 按位异或 取反 左移 右移
快速记忆 全为1,才为1 有一个为 1,就为1 相同,才为0 0和1互换

各个二进制位全部左移若干位,高位丢弃,低位补 0

二进制位全部右移若干位,低位丢弃,高位补 0 或 1。

如果数据的最高位是 0,那么就补 0;如果最高位是 1,那么就补 1。

一、按位与运算(&)

按位与运算通常用来对某些位清 0,或者保留某些位

例如要把 n 的高 16 位清 0 ,保留低 16 位,可以进行 n & 0XFFFF 运算(0XFFFF 在内存中的存储形式为 0000 0000 -- 0000 0000 -- 1111 1111 -- 1111 1111)。

#include <stdio.h>
int main(){
int n = 0X8FA6002D;
printf("%d, %d, %X\n", 9 & 5, -9 & 5, n & 0XFFFF);
return 0;
}

运行结果&
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值