Vì vậy, tôi chỉ đang thử một số thao tác bit trong C ++. Đây là những gì tôi đã cố gắng:
int a = 1<<2;
cout<<a;
Điều này cho đầu ra như 4.
int a = 1<<3;
cout<<a;
Điều này cho đầu ra là 8
Nhưng khi tôi làm:
int a = 1<<2 + 1<<3;
cout<<a;
Nó cho đầu ra như 64 . Tại sao như vậy?
Tôi cũng đã thử:
int a = 1<<2;
int b = 1<<3;
cout<<a + b;
Mà cho đầu ra 12như mong đợi.
1<<2 + 1<<3thực sự là vậy 1<< 2+1 <<3. Đừng bị đánh lừa bởi khoảng trắng.
<<có mức độ ưu tiên thấp hơn+,1<<2 + 1<<3=1<<(2 + 1)<<3