运算符顺序和位运算符

运算符顺序和位运算符_第1张图片

运算符顺序和位运算符_第2张图片

位运算符:

  &(AND):表示二元数全为真时结果为真。

  >(OR):或,表示二元数有一个为真时结果为真

  ^(EOR):异或。只有二元数全为1时,结果为0.即相同为0

  ~:取反。一元操作符,为1时结果为0,为0时结果为1

  >>:位右移。即操作数以二进制形式向右边移动的位数。

  <<:位左移. 即操作数以二进制形式向工边移动的位数。

  它们的格式也可变为:

    LValue op= RValue;

    如: a &=b 等价于 a=a & b;

          <<和>>操作对于无符号整数相当于 原值乘以2的n次方或原值除于2的n次方,n为移动的位数.

    如 int a=30,相当于二进制0001 1110,右移4位(二进制为0000 0001),则相当于30 / (2的4次方),结果为1. 左移4位,则变成(1110 0000),结果为480.

  代码为:

     

#include <iostream>

using namespace std;

void main()
{
	 int a=30;
	 cout<<(a>>4)<<endl;
	 a=30;
	 cout<<(a<<4)<<endl;

}  

//计算结果为 1
      480

有符号整数的最右数为1,以另种方法计算。

逻辑运算符

  &&(逻辑与),二元运算符,只有二个操作条件都为真时,结果才为真。

  ||(逻辑或),二元运算符,只有二个操作条件有一个为真时就为真。

  !(逻辑非), 一元运算符,将条件表达式取反。

  条件表达式结果是零时为False,非零时为True.

你可能感兴趣的:(位运算)