2-3 什么是位运算?
本节编程练习不计算学习进度,请电脑登录imooc.com操作

什么是位运算?

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 。

任务

  1.  
下一节