JavaScript is required

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

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

Đáp án đúng: D


Trong hệ biểu diễn số có dấu 8-bit, chúng ta có thể biểu diễn các số từ -128 đến 127. Số 91 được biểu diễn là 01011011 (dạng nhị phân). Số 63 được biểu diễn là 00111111 (dạng nhị phân). Khi cộng hai số này: 01011011 + 00111111 ---------- 10011010 Kết quả là 10011010 (dạng nhị phân). Trong hệ biểu diễn số có dấu, bit старший (most significant bit - MSB) là bit dấu. Ở đây, MSB là 1, nghĩa là số âm. Để chuyển đổi nó về dạng thập phân, ta lấy bù 2 của nó: Đảo bit: 01100101 Cộng 1: 01100110 Số này tương ứng với 2 + 4 + 32 + 64 = 102. Vậy số ban đầu là -102. Tuy nhiên, chúng ta cần xem xét điều kiện tràn số. 91 + 63 = 154. Vì 154 > 127, phép cộng này gây ra tràn số (overflow) trong hệ 8-bit có dấu. Do đó, kết quả -102 là một kết quả sai lệch do tràn số. Vì vậy, đáp án đúng nhất là A: Không cho kết quả, vì tràn số.

Câu hỏi liên quan