JavaScript is required

What is output?
Media VietJack

A.
Complier error
B.
6
C.
5
D.
Another
Trả lời:

Đáp án đúng: A


Đoạn code trên thực hiện các phép toán trên các bit của số nguyên `a`. Ban đầu, `a` được gán giá trị 7, tương đương với biểu diễn nhị phân `0111`. 1. `a >>= 1;` Dịch phải `a` một bit. Kết quả là `a` trở thành 3, tương đương `0011`. 2. `a &= 5;` Thực hiện phép AND giữa `a` và 5 (tương đương `0101`). Kết quả là `a` trở thành 1, tương đương `0001`. 3. `a |= 6;` Thực hiện phép OR giữa `a` và 6 (tương đương `0110`). Kết quả là `a` trở thành 7, tương đương `0111`. 4. `a ^= 3;` Thực hiện phép XOR giữa `a` và 3 (tương đương `0011`). Kết quả là `a` trở thành 4, tương đương `0100`. 5. `a = ~a;` Đảo bit của `a`. Kết quả là `a` trở thành -5 (do biểu diễn số âm bù hai). Tuy nhiên, do kiểu dữ liệu là `int` nên khi in ra sẽ là một số khác tuỳ thuộc vào số bit biểu diễn của `int` (ví dụ int 32 bit thì kết quả là -5, int 64 bit thì kết quả sẽ khác. Tuy nhiên trong bài này kiểu dữ liệu không quan trọng) 6. `a = ~a;` Đảo bit của `a` một lần nữa. Kết quả là `a` trở về giá trị ban đầu trước khi đảo bit lần đầu, tức là `a` trở lại 4. 7. Cuối cùng `++a` tăng `a` lên 1 đơn vị. Do đó, giá trị cuối cùng của `a` là 5. Vậy đáp án đúng là C. 5

Câu hỏi liên quan