位运算的问题

<<优先级的问题,代码附下:

 

#include<iostream>

#include<bitset>

using namespace std;

int main() {
    bitset<4> a(0);

   int col = (a[3]<<3) + (a[2]<<2) + (a[1]<<1) + (a[0]);
    cout<<col<<endl;
    int col1 =  a[3]<<3  +  a[2]<<2  +  a[1]<<1  +  a[0] ;
    cout<<col1<<endl;

}

col 的值为15

col1的值为512.

目前只能判断是优先级方面的问题。尚不够了解。