Cho a=3, b=2. Biến c= (a<<=B) sẽ có giá trị nào dưới đây:
Cho a=3, b=2. Biến c= (a<<=B) sẽ có giá trị nào dưới đây:
Trả lời:
Đáp án đúng: B
Câu hỏi kiểm tra về toán tử dịch trái bit (<<=) trong một ngôn ngữ lập trình (ví dụ: C, C++, Java). Toán tử `<<=` dịch trái toán hạng bên trái một số lượng bit được chỉ định bởi toán hạng bên phải và gán kết quả cho toán hạng bên trái.
Trong trường hợp này, `a <<= b` có nghĩa là dịch trái giá trị của `a` (ban đầu là 3) `b` bit (2 bit) và gán kết quả trở lại cho `a`. Sau đó, giá trị mới của `a` sẽ được gán cho `c`.
Bước 1: Chuyển 3 sang dạng nhị phân: 3 = 00000011 (8 bit).
Bước 2: Dịch trái 2 bit: 00000011 << 2 = 00001100.
Bước 3: Chuyển 00001100 sang dạng thập phân: 00001100 = 12.
Bước 4: Gán giá trị 12 cho a. Sau đó gán a cho c. Vậy c=12.
Do đó, đáp án đúng là B. c=12.