二进制移位 (C++)


位操作

计算机内存中的所有数字都以二进制形式存储,即作为 0 和 1 的序列。为了在计算机内存中存储数字,使用了有限数量的位。由于这个数字,计算机的范围有限,计算结果可能不准确。 一个整数可以存储在8位、16位、32位或64位的内存中。每增加一位,可能值的范围就会扩大 2。 
使用相同的算法在处理器中执行正数和负数的运算。

借助按位逻辑运算,您可以控制处理器和外部设备寄存器的各个位。 
  <头> <正文>



操作AND
使用操作“AND,您可以重置(设置为零)掩码为 0 的位! 
 
掩码–一个常量,它定义了对多位数字的位进行逻辑运算的范围。

D - 数据,M - 掩码

 

操作OR
操作“OR可用于将1写入掩码为1的位!

 

运算异或
使用操作“XOR,您可以反转掩码为 1 的位!


 

左移
逻辑(按位) 左移 1 位将正整数加倍。

 

右移
布尔值(按位)。右移 1 将一个正整数除以 2。


由于右移会在空位置设置符号位,因此可以通过右移变量的整个长度来确定 x 的符号。

C++操作 目的地
一个 & b 按位 And 用于 ab
一个 | b ab 的按位OR
a ^ b OR 用于 ab
~a a 的位反转
<代码>一个<< b a 左移到 b
一个>> b a按位右移到b