Which shift operation would you use to divide a signed integer by 2?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "Arithmetic right shift". Dịch phải số học đẩy mọi bit sang phải một vị trí nhưng giữ lại bit dấu bằng cách nhân bản nó vào chỗ trống bên trái, nên số âm vẫn còn âm; mỗi lần dịch tương đương chia cho 2 với phần dư bị bỏ đi. "Logical right shift" sai vì nó chèn bit 0 vào bên trái, biến một số âm dạng bù hai thành số dương rất lớn, tức phá mất dấu. "Logical left shift" sai vì dịch sang trái tương đương nhân với 2, đi ngược yêu cầu chia. "Arithmetic left shift" sai vì nó cũng là phép nhân với 2 chứ không phải chia, và còn có thể làm bit dấu bị đẩy ra ngoài gây tràn số, đổi hẳn dấu của kết quả.

Cùng phần 4

Xuất hiện trong 1 bộ đề