JavaScript is required

What will be the output of the program?
Media VietJack

A.
1 0 1
B.
1 1 1
C.
0 0 0
D.
0 1 0
Trả lời:

Đáp án đúng: C


Đoạn code thực hiện các phép toán bitwise trên các biến `a`, `b`, và `c`. Ban đầu, `a = 5`, `b = 1`, `c = 2`. 1. `a = a ^ b;` (a = 5 ^ 1 = 4). Phép XOR giữa 5 (0101) và 1 (0001) cho kết quả 4 (0100). 2. `b = b ^ a;` (b = 1 ^ 4 = 5). Phép XOR giữa 1 (0001) và 4 (0100) cho kết quả 5 (0101). 3. `a = a ^ b;` (a = 4 ^ 5 = 1). Phép XOR giữa 4 (0100) và 5 (0101) cho kết quả 1 (0001). 4. `c = a & b;` (c = 1 & 5 = 1). Phép AND giữa 1 (0001) và 5 (0101) cho kết quả 1 (0001). 5. `a = c ^ a;` (a = 1 ^ 1 = 0). Phép XOR giữa 1 (0001) và 1 (0001) cho kết quả 0 (0000). 6. `b = b | c;` (b = 5 | 1 = 5). Phép OR giữa 5 (0101) và 1 (0001) cho kết quả 5 (0101). 7. `c = ~c;` (c = ~1 = -2). Phép NOT trên 1 (0001) cho kết quả -2 (1111 1111 1111 1111 1111 1111 1111 1110, giả sử số nguyên 32-bit). 8. `c = c << 1;` (c = -2 << 1 = -4). Dịch trái -2 (đã biểu diễn ở trên) một bit cho kết quả -4. 9. `c = ~c;` (c = ~-4 = 3). Phép NOT trên -4 cho kết quả 3. Vậy, `a = 0`, `b = 5`, `c = 3`. Do đó, không có đáp án nào đúng trong các lựa chọn đã cho.

Câu hỏi liên quan