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 12
như mong đợi.
1<<2 + 1<<3
thự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