章节
问答
课签
笔记
评论
占位
占位

什么是位运算?

C++ 中有一些基本数据类型例如 int,short,char

最小的就是 char 了,没有比一个字节更小的了,那么我们想要做颗粒度更细的操作的时候,应该怎么办呢?

这时候就要用到位运算了。

& 与运算

参加运算的两个数据,按二进制位进行与运算。如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。

  10100011
& 00100101
------------
  00100001

| 或运算

两个相应的二进制位中只要有一个为1,该位的结果值为1。

  00110000
| 00000111
------------
  00110111

^ 异或

若参加运算的两个二进制位值相同则为0,否则为1。

  00111001
^ 00101010
------------
  00010011

~ 取反

这是一元运算符,用于求整数的二进制反码,即分别将操作数各二进制位上的 1 变为 0,0 变为 1。

例如, 00001001 的二进制数取反,就变成了 11110110

<< 左移

各位全部左移若干位,高位丢弃,低位补 0 。

>> 右移

各二进位全部右移若干位,对无符号数,高位补 0 ,有符号数,各编译器处理方法不一样,有的补符号位,有的补 0 。

任务

?不会了怎么办
||

提问题

写笔记

公开笔记
提交
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

举报

0/150
提交
取消
全部 精华 我要发布
全部 我要发布
最热 最新
只看我的

手记推荐

更多

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?