sách gpt4 ăn đã đi

c++ - if (mask & VALUE) có nghĩa là gì if ((mask & VALUE) == VALUE)?

In lại Tác giả: IT Lão Cao Thời gian cập nhật: 28-10-2023 12:32:50 28 4
mua khóa gpt4 giày nike

bạn có thể quen thuộc với liệt kê Sơ đồ mặt nạ bit, ví dụ:

enum Cờ {
CỜ1 = 0x1,
CỜ2 = 0x2,
CỜ3 = 0x4,
CỜ4 = 0x8,

KHÔNG CÓ_CỜ = 0,
TẤT CẢ_CỜ = CỜ1 | CỜ2 | CỜ3 | CỜ4
};

f(CỜ2 | CỜ4);

Tôi đã thấy rất nhiều mã sau đó kiểm tra một phần nhất định trong mặt nạ, như

nếu ((mặt nạ & FLAG3) == FLAG3)

Nhưng điều đó không tương đương với điều này sao?

nếu (mặt nạ & FLAG3)

Có lý do nào để sử dụng phiên bản đầu tiên không? Theo tôi, phiên bản ngắn thứ hai rõ ràng hơn.

Có thể là một thói quen còn sót lại của các lập trình viên C, những người tin rằng các giá trị chân lý nên được chuyển đổi thành 1? (Mặc dù ở đó, phiên bản dài hơn sẽ tốt hơn khi gán hoặc trở lại câu lệnh có ý nghĩa hơn so với kiểm tra câu lệnh có điều kiện. )

câu trả lời hay nhất

kết cấu nếu ((mặt nạ & FLAG3) == FLAG3) Thử nghiệm trong FLAG3 tất cả Liệu bit có tồn tại trong mặt nạ hay không; nếu (mặt nạ & FLAG3) Bài kiểm tra bất kì tồn tại.

Nếu bạn biết rằng FLAG3 có tập hợp chính xác 1 bit thì chúng tương đương nhau, nhưng nếu bạn có thể xác định các điều kiện phức hợp, sẽ rõ ràng hơn nếu bạn có thói quen kiểm tra rõ ràng tất cả các bit, nếu đó là ý bạn.

Về c++ - if (mặt nạ & VALUE) hoặc if ((mặt nạ & VALUE) == VALUE)? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/4649231/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress