C++/C语言 操作硬件的位运算

所谓内存是由一个个字节所组成的 每个字节又是有八位组成 每位可以存放一个二进制数据(0 或1 )
一般用于嵌入式开发
位运算 &

0&0 0
0&1 0
1&0 0
1&1 1
例:8&3= ?
8 二进制00001000
3 二进制00000011
对应的位相&得到 00000000
结果为0

位运算 |

0|0 0
0|1 1
1|0 1
1|1 1
例:8|3= ?
8 二进制00001000
3 二进制00000011
对应的位相|结果为 00001011再转化为十进制
结果为11

位运算 ~

~8
0001000
相应的位置取反的11110111再转化为十进制
结果为247

位运算^
异或
相同去0 不同去1
8^3=?
00001000
00000011 =>
00001011得到11
8^8=0 相同为取0

位运算
左移<<
右移>>

八位的内存空间线性排列从左到右 从高位到低位
8<<1
在这里插入图片描述
自动补0
结果为00010000十进制 16
右移同理
运算技巧:左移几位就乘以2的几次方 右移几位除以2的几次方

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值