что бы указывало на переполнение? - PullRequest
3 голосов
/ 31 января 2012

enter image description here

Я делаю этот вопрос, и некоторые разъяснения будут очень полезны. Что именно повлечет за собой переполнение? Если при преобразовании в десятичную запись потребуется дополнительный бит? Для части 3 «рассматривать биты как числа дополнения до двух» он имеет в виду найти дополнение до двух? Большое спасибо.

Ответы [ 3 ]

3 голосов
/ 31 января 2012

Для числа 3 он не значит найти дополнение 2.Он говорит вам обрабатывать значения как числа со знаком, используя двойную запись.Это означало бы, что первое значение в а) является положительным, а остальные три отрицательными.

Для переполнения оно отличается для 2 и 3. Для чисел без знака, 2, переполнение происходит, если имеется выполнениевысокий бит.Для 3, 2 дополненных чисел со знаком переполнение происходит, если знак результата неверен.Например, если вы добавили два положительных числа, а результат отрицательный, произошло переполнение.

2 голосов
/ 31 января 2012

Если вы добавите x и y и получите результат, который меньше x или меньше y , то сложение переполнен (обернут).

0 голосов
/ 31 января 2012

Переполнение будет, если полученная сумма будет больше, чем может быть выражено в 8-битной системе.Я считаю, что это может быть любое число больше 255 (1 << 8). </p>

Ваше предположение "лишний бит" в основном верно.В 8-битной системе все числа хранятся в 8-битных.Любая операция, результатом которой будет число, превышающее максимально допустимое, будет переполнена.Это не происходит, когда вы конвертируете в десятичное число, но когда вы фактически выполняете сумму с двоичными значениями.Если все числа являются 8-битными, вы не можете просто добавить дополнительный бит, когда вам нужно сохранить большее число.

Да, «дополнение двух» такое же, как «дополнение 2».Мне не известно о каких-либо различиях между тем, что вы пишете или используете цифру.

...