Это ошибка в моей компьютерной архитектурной книге?

StackOverflow https://stackoverflow.com/questions/1726059

  •  19-09-2019
  •  | 
  •  

Вопрос

Я работаю над своим HW для компьютерной архитектуры и наткнулся на следующую проблему:

A = 247
B = 237

1) Предположим, что A и B подписаны 8-битные целые числа, хранящиеся в формате комплемента Two. Рассчитайте A + B с использованием насыщающей арифметики. Результат должен быть написан в десятичном масштабе. Показать свою работу.
2) Предположим, что A и B подписаны 8 -битные целые числа, хранящиеся в формате Compelemnt. Рассчитайте A - B, используя насыщающую арифметику.

Теперь, как это даже действительные вопросы? Я знаю, что такое насыщающая арифметика, но как действительно сказать, что A равно 247, а B-237, когда они не могут быть представлены 8-битным номером дополнения?

Я понимаю, что смысл насыщенной арифметики находится в случае переполнения/нижнего потока, чтобы установить все биты на крайнюю ценность, но для меня не имеет смысла задать ряд вопросов (есть еще 3 с этой же проблемой) включает арифметику чисел, которые не могут быть представлены в формате, который они указали.

Я здесь ошибаюсь?

Это было полезно?

Решение

Единственная интерпретация, которая имеет смысл, заключается в том, что данные значения - это без знака интерпретация рассматриваемого числа; Значения, превышающие 127, очевидно, находятся вне диапазона для 8-битного значения двойного комплекса. Я согласен, что вопрос плохо указан.

Другие советы

Я не знаю, но это мощь Будьте спросить: «Преобразовать десятичное число 237 в 8-битное целое число. Теперь интерпретируйте эти биты как 8-битное целое число комплемента и добавить их».

Вроде как сказать: в c:

char a = 237;
printf("%x %d\n",a, a);

Который компилизируется и дает вам ценности, которые вы ожидаете, на основе интерпретации комплемента 8-битного значения "237"

Для меня выглядит неправильно. 8-битные подписанные два целых числа комплемента могут быть между -128 и 127. Любая попытка назначить постоянную 237 или 247 8-битной переменной комплемента должна привести к ошибке, в зависимости от вашего языка.

Если бы проблема заключалась в том, что «предположим, что A и B хранятся в 8 -битном подписанном целом», то это имело бы смысл. Хранение a = 247 в 8 -битном целое число дает значение -9, хранение B = 237 дает значение -19. В противном случае это не имеет смысла. 8 -битное целое число не может иметь значение 247 или 237.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top