c++ 里面 << 左移 >> 右移的作用

先上代码吧,看了之后你就会懂

#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#include<bits/stdc++.h>
#define rep(i,j,k) for(register int i=(j);i<=(k);++i)
using namespace std;
template<class T> inline void read(T &x) {
    x=0;
    register char c=getchar();
    register bool f=0;
    while(!isdigit(c))f^=c=='-',c=getchar();
    while(isdigit(c))x=x*10+c-'0',c=getchar();
    if(f)x=-x;
}
int main() {
    int num = 32;
    
    int half = num >> 1;
    int quarter = num >> 2;
    int doublenum = num << 1;
    int quadruple = num << 2;
    
    printf("half = %d\n quarter = %d\n doublenum = %d\n quadruple = %d\n", half, quarter, doublenum, quadruple);
    
    return 0;
}

half = 16

quarter = 8

doublenum = 64

quadruple = 128

注意:

不能出现cout<< 2>>1 <<endl; 必须得打上括号 cout<< (2>>1) <<endl; 因为>>和<<运算级是一样的,并且这里是输入输出运算符,编译器会无法识别。

posted @ 2020-04-10 19:17  牛大了的牛大  阅读(518)  评论(0编辑  收藏  举报