2010-05-17 41 views

Trả lời

25

Nó thực hiện một bitwise "và" như một toán tử gán ghép. Nó tương đương với:

int x = 45; 
x = x & 34; 
int y = x; 

Bây giờ 45 = 32 + 8 + 4 + 1, và 34 = 32 + 2, do kết quả của một phép toán "và" là 32.

Cá nhân tôi nghĩ rằng việc sử dụng một toán tử gán phức hợp trong một khai báo biến là khá không đọc được - nhưng có lẽ đây không phải là "thật" mã để bắt đầu với ...

+0

Thận trọng, bạn không thể cạnh tranh với Skeet! (cần được thêm vào đây: http://meta.stackexchange.com/questions/9134/jon-skeet-facts). Khi 10 người bao gồm cả @Jon trả lời một câu hỏi cùng một lúc, chỉ anh ấy sẽ bỏ đi với 2 huy hiệu Câu trả lời hay hơn .... và tất cả trước giờ uống trà buổi sáng (ở Luân Đôn). Tốt đẹp :) – slugster

0

Nó tương đương với:

int x = 45; 
x = x & 34; 
int y = x; 

The & operator với nhiều loại không thể thiếu tính toán bitwise logic AND toán hạng của nó.

0

Trông giống như bit AND, được gán cho x bằng ký hiệu phím tắt &= và cũng được gán cho y.

0
45 = 101101(binary) 
34 = 100010(binary) 

45 & 34 = 100000(binary) = 32 
0

Ở đây x &= 34 được sử dụng làm bài tập và biểu thức. Nó tính toán giá trị của x & 34, gán nó cho x và giá trị của biểu thức là những gì được chỉ định.

Kết quả của bitwise và hoạt động 45 & 3432, được gán cho x và sau đó là y.

10
int x = 45; 
int y = x &= 34; 
Gives: y = 32 

int x = 45; // 45 = 101101 
      // 34 = 100010 
x = x & 34; // 101101 
      // 100010 & 
      // -------- 
      // 100000 (= 32) 

int y = x; // y = 32 
Các vấn đề liên quan