用户工具

站点工具


reference:language:bitwiseand

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

reference:language:bitwiseand [2017/04/07 10:03] (当前版本)
行 1: 行 1:
 +====== Bitwise AND (&), Bitwise OR (|), Bitwise XOR (^) ======
 +
 +===== 按位与(&​) =====
 +
 +按位操作符对变量进行位级别的计算。它们能解决很多常见的编程问题。下面的材料大多来自这个非常棒的按位运算指导。
 +===== 说明和语法 =====
 +
 +下面是所有的运算符的说明和语法。进一步的详细资料,可参考教程。
 +===== 按位与(&​) =====
 +
 +位操作符与在C + +中是一个&​符,用在两个整型变量之间。按位与运算符对两侧的变量的每一位都进行运算,规则是:如果两个运算元都是1,则结果为1,否则输出0.另一种表达方式:
 +<​code>​
 +0 0 1 1 运算元1
 +0 1 0 1 运算元2
 +----------
 +0 0 0 1(运算元1&​运算元2)-返回结果
 +</​code>​
 +在ocrobot中,int类型为16位,所以在两个int表达式之间使用&​会进行16个并行按位与计算。代码片段就像这样:
 +<code cpp>
 +    int a =  92;    //​二进制:​ 0000000001011100
 +    int b = 101;    // 二进制: 0000000001100101
 +    int c = a & b;  // 结果: ​   0000000001000100,​ 或10进制的68
 +</​code>​
 +a和b的16位每位都进行按位与计算,计算结果存在c中,二进制结果是01000100,十进制结果是68.
 +
 +按位与最常见的作用是从整型变量中选取特定的位,也就是屏蔽。见下方的例子。
 +===== 按位或(|) =====
 +
 +按位或操作符在C++中是|。和&​操作符类似,|操作符对两个变量的为一位都进行运算,只是运算规则不同。按位或规则:只要两个位有一个为1则结果为1,否则为0。换句话说:
 +<​code>​
 +0 0 1 1 运算元1
 +