JavaScript is required

Đối với số có dấu, 8 bit, xét phép cộng: (-39) + (-42). Phát biểu nào sau đây là đúng:

A.
Không cho kết quả, vì tràn số
B.
Không cho kết quả, vì có nhớ ra khỏi bit cao nhất
C.
Tổng là -81
D.
Tổng là 81
Trả lời:

Đáp án đúng: C


Để giải bài này, ta cần hiểu về biểu diễn số có dấu dùng 8 bit và phép cộng trong hệ nhị phân bù hai. Số -39 được biểu diễn trong hệ 8-bit bù hai là: 11010001 Số -42 được biểu diễn trong hệ 8-bit bù hai là: 11010110 Thực hiện phép cộng: 11010001 + 11010110 ---------- 1 10100111 Vì ta đang sử dụng 8 bit, bit nhớ ngoài cùng bên trái (bit thứ 9) bị bỏ qua. Kết quả là 10100111. Đây là một số âm. Để chuyển về dạng thập phân, ta lấy bù hai của 10100111: - Đảo các bit: 01011000 - Cộng 1: 01011001 01011001 trong hệ thập phân là 32 + 8 + 4 + 1 = 89. Vậy số ban đầu là -89. Tuy nhiên, phạm vi biểu diễn của số có dấu 8-bit là từ -128 đến 127. Vì -89 nằm trong khoảng này, kết quả là -81 không chính xác, nhưng do số -89 nằm ngoài đoạn [-128, 127] nên đã xảy ra tràn số. Vì vậy đáp án chính xác nhất là không cho kết quả vì tràn số. Vậy đáp án đúng là A.

Câu hỏi liên quan